Nginx配置负载均衡

来源:互联网 发布:kmeans聚类算法优缺点 编辑:程序博客网 时间:2024/05/16 09:22

Nginx配置负载均衡

一,环境需求:

3台服务器部署web应用:192.168.32.128,192.168.32.129,192.168.32.130(三台服务器有三个相同的网站,api.adv.com, os.adv.com, www.adv.com分别代表api,后端,前端应用)

1台服务器192.168.32.131 作为负载均衡配置服务器。

 

二,配置

1, 在192.168.32.131上编辑nginx配置文件

$ vim /usr/local/nginx/conf/nginx.conf

配置内容如下

#参考手册地址http://nginx.org/en/docs/http/load_balancing.html

worker_processes  1;

events {

   
worker_connections 1024;

}


http
{

   
include       mime.types;

   
default_type  application/octet-stream;

   
sendfile        on;

   
keepalive_timeout  65;

   
#Api服务器群(采用默认的伦询机制)
    upstream api_proxy{

        
#least_conn; #如果要开启最少连接优先,打开注释,还可以配置权重 如server 192.168.32.128 weight=3;

       
server 192.168.32.128;

        
server 192.168.32.129;

        
server 192.168.32.130;

   
}

   
#后台服务器(同一个ip始终访问同一个服务器,以确保session有效,所以为ip_hash模式)
    upstream backend_proxy{

        
ip_hash;

        server
192.168.32.128;

        
server 192.168.32.129;

        
server 192.168.32.130;

   
}

   
#前台服务器(同一个ip始终访问同一个服务器,以确保session有效,所以为ip_hash模式)
    upstream frontend_proxy{

        
ip_hash;

         server
192.168.32.128;

        
server 192.168.32.129;

        
server 192.168.32.130;

   
}

   
#配置api服务器
    server {

       
listen       80;

       
#api网站域名,这里换成自己的网站域名即可
       
server_name  api.adv.com;

       
location / {

            
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
            
proxy_set_header Host $host;
            
proxy_set_header X-Real-IP $remote_addr;
            
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            
#禁用缓存
            
proxy_buffering off;

            
#反向代理的地址
            
proxy_pass http://api_proxy;

       
}

    }

   
#配置后台服务器
   
server {

       
listen       80;

       
#后端网站域名,这里换成自己的网站域名即可
       
server_name  os.adv.com;

       
location / {

            
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
            
proxy_set_header Host $host;
            
proxy_set_header X-Real-IP $remote_addr;
            
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            
#禁用缓存
             
proxy_buffering off;

            
#反向代理的地址
            
proxy_pass http://backend_proxy;

       
}

    }

   
#前台需要根据ip定位到一台服务器处理
    server {

       
listen       80;

       
#前端网站域名,这里换成自己的网站域名即可
       
server_name  www.adv.com;

        
location/ {

            
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
            
proxy_set_header Host $host;
            
proxy_set_header X-Real-IP $remote_addr;
            
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            
#禁用缓存
             
proxy_buffering off;

            
#反向代理的地址
            
proxy_pass http://frontend_proxy;

       
}

    }
}

 

2,重载nginx配置文件生效配置

$ /usr/local/nginx/sbin/nginx -s reload