首页 > 代码库 > nginx 负载均衡 反向代理

nginx 负载均衡 反向代理

A(主)、B、C服务器、A为主服务器

原理:

    域名解析到A服务器,A服务器分配给到B、C服务器上


核心配置(该配置方法主服务器不提供服务):

    upstream nginx.cn {

               #ip_hash;

               #server 192.168.1.228:80 weight=5;

               #server 192.168.1.224:80 weight=5;

               server 192.168.1.228:80;

               server 192.168.1.240:80;

    }

    server{

        listen       80;

        server_name  nginx.cn;

        location /{

               proxy_pass http://nginx.cn;

               if ($request_uri   ~*   ".*\.(js|css|gif|jpg|jpeg|png|bmp|swf)$"){

                    proxy_pass http://nginx.cn;

               }

         }

         location /status{

                     auth_basic "NginxStatus";

                     stub_status on;

                     access_log  on;

         }

    }


如果把主服务器的ip放到upstream中,服务器会给自己进行分配负载任务,无限自己调动自己,会造成死循环.

因为:80端口已经用来监听负载均衡的处理,那么本服务器上就不能再使用80端口来处理访问请求,得用一个新的。于是我们把主服务器的nginx.conf加入以下一段代码:

server{ 
    listen 8080; 
    server_name a.com; 
    index index.html; 
    root /data0/htdocs/www; 
}


全部配置(该配置方法主服务器不提供服务):

user  www www;

worker_processes 10;

pid        nginx.pid;

events{

      use epoll;

      worker_connections 51200;

}

http {

      include       mime.types;

      default_type  application/octet-stream;

      keepalive_timeout 120;

      tcp_nodelay on;

      upstream nginx.cn {

           #ip_hash;

           #server 192.168.1.228:80 weight=5;

           #server 192.168.1.224:80 weight=5;

           server 192.168.1.228:80;

           server 192.168.1.240:80;

      }

      server{

        listen       80;

        server_name  nginx.cn;

          location /{

                proxy_pass http://nginx.cn;

                if ($request_uri   ~*   ".*\.(js|css|gif|jpg|jpeg|png|bmp|swf)$"){

                        proxy_pass http://nginx.cn;

                }

          }

                location /status{

                        auth_basic "NginxStatus";

                        stub_status on;

                        access_log  on;

                }

      }

}


其他webserver 只需要配置相应的域名即可



nginx 负载均衡 反向代理