Nginx 之负载均衡与反向代理

负载均衡服务器策略:

1.轮循  每个请求逐个分发到后端服务器

2.加权轮循  按照分配的权重将请求分发到后端服务器

3.ip hash 轮询的基础上,保持一个客户端多次请求分发到一台后端服务器上

一、轮询配置

  #定义后端服务器组
    upstream nginx-test{
        server 192.168.0.128;
        server 192.168.0.127;
    }
    server {
        listen       8080;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        root   "G:/phpstudy/nginx/html";
        
        location / {
           index  index.html index.htm index.php l.php;
           autoindex  on;
           proxy_pass http://nginx-test;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        
        location ~ \.php(.*)$  {
            fastcgi_pass   127.0.0.1:9001;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
        
    }

二、轮询加权配置

  #定义后端服务器组
    upstream nginx-test{
        server 192.168.0.128 weight=2;
        server 192.168.0.127;
        server 192.168.0.126 backup; # 备份服务器,其他服务器宕机后启动
    }
    server {
        listen       8080;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        root   "G:/phpstudy/nginx/html";
        
        location / {
           index  index.html index.htm index.php l.php;
           autoindex  on;
           proxy_pass http://nginx-test;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

三、IP Hash配置

  #定义后端服务器组
    upstream nginx-test{
        ip_hash;
        server 192.168.0.128;
        server 192.168.0.127;
        server 192.168.0.126;
    }
    server {
        listen       8080;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        root   "G:/phpstudy/nginx/html";
        
        location / {
           index  index.html index.htm index.php l.php;
           autoindex  on;
           proxy_pass http://nginx-test;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }    
    }

 四、负载均衡与反向代理区别

1、负载均衡需要通过反向代理来实现
2、反向代理就是指nginx作为前端服务器,将请求转发到后端,再将后端服务器的结果,返回给客户端
它在中间做了一个代理服务器的角色
3、负载均衡对反向代理增加了一些策略,因为后端是多台服务器,nginx会根据设定的策略将请求转发给一个相对空闲的服务器,对负载进行分流,减轻服务器压力

五、反向代理配置

  #定义后端服务器组
    upstream nginx-test{
        server 192.168.0.127;
    }
    server {
        listen       8080;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        root   "G:/phpstudy/nginx/html";
        
      #代理配置参数
        proxy_connect_timeout 180;
        proxy_send_timeout 180;
        proxy_read_timeout 180;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarder-For $remote_addr;
        
        location / {
          proxy_pass http://nginx-test;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

 

posted @ 2019-08-27 15:59  样子2018  阅读(443)  评论(0编辑  收藏  举报