• Nginx+Windows负载均衡(转载)


    一、下载Nginx
    http://nginx.org/download/nginx-1.0.8.zip
    解压到C: ginx目录下
    二、在两台服务器上分别建一个网站:
    S1:192.168.16.35:8054
    S2:192.168.16.16:8089
    二、找到目录
    C: ginxconf ginx.conf
    打开nginx.conf
    配置如下:

    #使用的用户和组,window下不指定
    #user  nobody;
    #指定工作衍生进程数(一般等于CPU总和数或总和数的两倍,例如两个四核CPU,则总和数为8)
    worker_processes  1;
    #指定错误日志文件存放路径,错误日志级别可选项为【debug|info|notice|warn|error|crit】
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    error_log  logs/error.log  info;
    #指定pid存放路径
    #pid        logs/nginx.pid;

    #工作模式及连接数上限
    events {
        #使用网络I/O模型,Linux系统推荐使用epoll模型,FreeBSD系统推荐使用kqueue;window下不指定 
        #use epoll; 
        #允许的连接数
        worker_connections  1024;
    }

    #设定http服务器,利用他的反向代理功能提供负载均衡支持  
    http {
        #设定mime类型
        include       mime.types;
        default_type  application/octet-stream;
        #设定日志格式
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';

        #access_log  logs/access.log  main;
        log_format main '$remote_addr - $remote_user [$time_local]'    
                                            '"$request" $status $bytes_sent'    
                                            '"$http_referer" "$http_user_agent" "$http_x_forwarded_for"'    
                                            '"$gzip_ratio"';    
        log_format download '$remote_addr - $remote_user [$time_local]'    
                                            '"$request" $status $bytes_sent'    
                                            '"$http_referer" "$http_user_agent"'    
                                            '"$http_range" "$sent_http_content_range"'; 
         
        #设定请求缓冲    
        client_header_buffer_size 1k;    
        large_client_header_buffers 4 4k; 
         
        #设定access log   
        access_log  logs/access.log  main; 
        client_header_timeout 3m;    
            client_body_timeout 3m;    
            send_timeout 3m;  
     
        sendfile        on; 
        tcp_nopush     on; 
        tcp_nodelay on;   
        #keepalive_timeout  0; 
        keepalive_timeout  65; 
     
        #开启gzip模块  
        gzip  on; 
        gzip_min_length 1100;    
            gzip_buffers 4 8k;    
            gzip_types text/plain application/x-javascript text/css application/xml;   
              
            output_buffers 1 32k;    
            postpone_output 1460; 
         
        server_names_hash_bucket_size 128;   
        client_max_body_size 8m;   
         
        fastcgi_connect_timeout 300;   
        fastcgi_send_timeout 300;   
        fastcgi_read_timeout 300;   
        fastcgi_buffer_size 64k;   
        fastcgi_buffers 4 64k;   
        fastcgi_busy_buffers_size 128k;   
        fastcgi_temp_file_write_size 128k;   
        gzip_http_version 1.1;   
        gzip_comp_level 2;   
        gzip_vary on;

        #设定负载均衡的服务器列表    
            upstream localhost {  
                #根据ip计算将请求分配各那个后端tomcat,可以解决session问题
                ip_hash;    
                #同一机器在多网情况下,路由切换,ip可能不同     
                #weigth参数表示权值,权值越高被分配到的几率越大 
            #server localhost:8080 weight=1;    
                #server localhost:9080 weight=1;         
                server 192.168.16.35:8054 max_fails=2 fail_timeout=600s;    
                server 192.168.16.16:8089 max_fails=2 fail_timeout=600s;    
            }  
     
        #设定虚拟主机 
        server {
            listen       80;
            server_name  192.168.16.16;

            #charset koi8-r;
        charset UTF-8;
            #设定本虚拟主机的访问日志
            access_log  logs/host.access.log  main;
        #假如访问 /img/*, /js/*, /css/* 资源,则直接取本地文档,不通过squid    
            #假如这些文档较多,不推荐这种方式,因为通过squid的缓存效果更好   
            #location ~ ^/(img|js|css)/ {    
             #           root /data3/Html;    
             #           expires 24h;    
             #       } 
            #对 "/" 启用负载均衡  
            location / {
                root   html; 
                index  index.html index.htm index.aspx; 
                 
                            proxy_redirect off;  
                            #保留用户真实信息   
                            proxy_set_header Host $host;    
                            proxy_set_header X-Real-IP $remote_addr;    
                            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
                            #允许客户端请求的最大单个文件字节数   
                            client_max_body_size 10m;    
                            #缓冲区代理缓冲用户端请求的最大字节数,可以理解为先保存到本地再传给用户 
                            client_body_buffer_size 128k;    
                            #跟后端服务器连接超时时间 发起握手等候响应超时时间 
                            proxy_connect_timeout 12; 
                            #连接成功后 等待后端服务器响应时间 其实已进入后端的排队之中等候处理  
                            proxy_read_timeout 90;    
                            #后端服务器数据回传时间 就是在规定时间内后端服务器必须传完所有数据    
                            proxy_send_timeout 90; 
                            #代理请求缓存区 这个缓存区间会保存用户的头信息一共Nginx进行规则处理 一般只要能保存下头信息

    即可 
                            proxy_buffer_size 4k;    
                            #同上 告诉Nginx保存单个用的几个Buffer最大用多大空间 
                            proxy_buffers 4 32k;    
                            #如果系统很忙的时候可以申请国内各大的proxy_buffers 官方推荐 *2 
                            proxy_busy_buffers_size 64k;   
                            #proxy 缓存临时文件的大小  
                            proxy_temp_file_write_size 64k;  
                            proxy_next_upstream error timeout invalid_header http_500 http_503 http_404; 
                            proxy_max_temp_file_size 128m;  
                             
                            proxy_pass http://localhost; 
            }

            #error_page  404              /404.html;

            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }

            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ .php$ {
            #    proxy_pass   http://127.0.0.1;
            #}

            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            #location ~ .php$ {
            #    root           html;
            #    fastcgi_pass   127.0.0.1:9000;
            #    fastcgi_index  index.php;
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            #    include        fastcgi_params;
            #}

            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /.ht {
            #    deny  all;
            #}
        }


        # another virtual host using mix of IP-, name-, and port-based configuration
        #
        #server {
        #    listen       8000;
        #    listen       somename:8080;
        #    server_name  somename  alias  another.alias;

        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}


        # HTTPS server
        #
        #server {
        #    listen       443;
        #    server_name  localhost;

        #    ssl                  on;
        #    ssl_certificate      cert.pem;
        #    ssl_certificate_key  cert.key;

        #    ssl_session_timeout  5m;

        #    ssl_protocols  SSLv2 SSLv3 TLSv1;
        #    ssl_ciphers  HIGH:!aNULL:!MD5;
        #    ssl_prefer_server_ciphers   on;

        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}

    }
    四、双击C: ginx ginx.exe文件,启动nginx。
    五、打开浏览器:
    输入http://192.168.16.16 进行访问
    测试:关掉S1上的网站,再刷新浏览器访问;关掉S2上的网站,打开S1的网站,刷新浏览器访问。
  • 相关阅读:
    线程数量与并行应用性能相关性的测试
    redis命令学习
    shell获取日期(昨天,明天,上月,下月)
    shell获取文件行数
    redis的备份和恢复
    redis使用Java学习
    kafka的一些常用命令
    查看kafka的group.id
    vim搜索后跳到下(上)一个
    redis批量执行
  • 原文地址:https://www.cnblogs.com/sandea/p/3293671.html
Copyright © 2020-2023  润新知