zoukankan      html  css  js  c++  java
  • nginx负载均衡配置

    二,配置nginx实现负载均衡
       以我的nginx.conf为例
    Xml代码  收藏代码
    #user  nobody;  
    worker_processes  1;  
      
    error_log  logs/error.log;  
      
    events {  
        worker_connections  1024;  
    }  
      
      
    http {  
        include       mime.types;  
        default_type  application/octet-stream;  
      
        sendfile        on;  
        keepalive_timeout  65;  
      
        #gzip  on;  
        upstream  www.docyeah.com   {  
                  server   192.168.1.11:8080;  
                  server   192.168.1.101:8080;  
        }  
        server {  
            listen       80;  
            server_name  www.docyeah.com;  
            charset utf-8;  
            location / {  
                root   html;  
                index  index.html index.htm;  
                proxy_pass        http://www.docyeah.com;  
                proxy_set_header  X-Real-IP  $remote_addr;  
                client_max_body_size  100m;  
            }  
      
      
            location ~ ^/(WEB-INF)/ {   
            deny all;   
            }   
      
            error_page   500 502 503 504  /50x.html;  
            location = /50x.html {  
                root   html;  
            }  
      
        }  
    }  
     
    将www.docyeah.com替换成你的域名
    192.168.1.11和192.168.1.101替换成你服务器的IP
     
    OK,已经完成。启动nginx即可。

    nginx在配置upstream时,有两个参数: 
    ip_hash(同一IP一直使用同一台server服务) 
    weight(server的使用权重,数值越大,nginx分发的请求越多)

    通过配合这两个参数,能粗糙地解决session共享的问题。 
    对于一些不是太依赖session的应用,或者只有用户登录时保存,那么我认为可以用Cookies代替。 
    即使真的要Session共享,我认为手动写代码保存到Memcached比为Tomcat加插件好,这样能获得更好的可控性。 
    而且我不用Tomcat,用Resin,这个msm就用不上啦,不过我会按照我的思想实现session共享,呵呵,个人愚见!!

    只是负载均衡的话,的确只要基于访问IP地址的分发策略就可以了。但这要就不能实现高可用。如果集群中的某台服务器挂掉,那这台服务器上的session用户都将丢失。

    #Nginx所用用户和组,window下不指定  
    #user  niumd niumd;  
      
    #工作的子进程数量(通常等于CPU数量或者2倍于CPU)  
    worker_processes  2;  
      
    #错误日志存放路径  
    #error_log  logs/error.log;  
    #error_log  logs/error.log  notice;  
    error_log  logs/error.log  info;  
      
    #指定pid存放文件  
    pid        logs/nginx.pid;  
      
    events {  
        #使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue,window下不指定。  
        #use epoll;  
          
        #允许最大连接数  
        worker_connections  2048;  
    }  
      
    http {  
        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  off;  
        access_log  logs/access.log;  
      
        client_header_timeout  3m;  
        client_body_timeout    3m;  
        send_timeout           3m;  
       
        client_header_buffer_size    1k;  
        large_client_header_buffers  4 4k;  
      
        sendfile        on;  
        tcp_nopush      on;  
        tcp_nodelay     on;  
      
        #keepalive_timeout  75 20;  
      
        include    gzip.conf;  
        upstream localhost {  
          #根据ip计算将请求分配各那个后端tomcat,许多人误认为可以解决session问题,其实并不能。  
          #同一机器在多网情况下,路由切换,ip可能不同  
          #ip_hash;   
          server localhost:18081;  
          server localhost:18080;  
         }  
      
        server {  
                listen       80;  
                server_name  localhost;     
      
                location / {  
                        proxy_connect_timeout   3;  
                        proxy_send_timeout      30;  
                        proxy_read_timeout      30;  
                            proxy_pass http://localhost;  
                }  
                  
       }  
    }  
  • 相关阅读:
    css之隐藏内容的方法
    字符串对象的各种方法
    javascript之自增自减典型运算(易错)
    Fuel 30 分钟快速安装OpenStack
    使用Sublime Text 3做Python开发
    Ubuntu 14.04.02 安装openvswitch-2.3.1
    linux 技巧:使用 screen 管理你的远程会话
    MQTT的学习研究(十七)Mosquitto简要教程(安装&使用)
    MQTT的学习研究(十六) MQTT的Mosquitto的window安装部署
    MQTT的学习研究(十五) MQTT 和android整合文章
  • 原文地址:https://www.cnblogs.com/panxuejun/p/6027626.html
Copyright © 2011-2022 走看看