Nginx反向代理和负载均衡部署指南

原文链接:http://www.cnblogs.com/handongyu/p/6410225.html
1.安装
1) 从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最新版本(目前是1.5.13版本)安装包;

2) 解压后复制到部署目录。

2.启动和停止Nginx

Nginx目前只支持命令行操作,操作前先进入Dos命令环境,并进入Nginx部署目录。

1) 启动Nginx:start nginx
2) 停止Nginx:nginx -s stop
3) 修改配置后重启:nginx -s reload

这三个命令可分别做成bat文件,放在部署目录下,方便后续操作。
start nginx.bat文件内容:start nginx
stop nginx.bat文件内容:nginx -s stop
reload nginx.bat文件内容:nginx -s reload

3 反向代理配置

修改部署目录下conf子目录的nginx.conf文件(如nginx-1.5.13\conf\nginx.conf)内容,可调整相关配置。

反向代理配置示例:

location  / {

    #设置主机头和客户端真实地址,以便服务器获取客户端真实IP
    proxy_set_header Host $host:$server_port;
    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://192.168.1.1;       
 } 

代理地址根据实际情况修改。
如:

location /ncms {
proxy_pass http://ncms;
proxy_redirect default;
port_in_redirect on;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

4 负载均衡配置

nginx 的 upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

另外一种方式是ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

负载均衡配置示例:

upstream backend {

         #ip_hash;
         server 192.168.1.251;
         server 192.168.1.252;
         server 192.168.1.247;
}

server {

        listen       80;
        server_name  trffweb; 
        location / { 
             #反向代理的地址
             proxy_pass http://backend;     
        }
} 

Upstream命名和服务器地址根据实际情况修改。
如:

server {
        listen       6888;
        server_name  localhost;

        location /ncms {  
            proxy_pass http://ncms;  
            proxy_redirect default;  
            ...
            }
}

5 完整配置示例

nginx.conf:

#worker_processes默认情况下为1,一般情况下不用修改,但考虑到实际情况,可以修改这个数值,以提高性能;
#官方的建议是修改成CPU的内核数,这里引用一段翻译过的文章: 
#worker_processes指明了nginx要开启的进程数,
#据官方说法,一般开一个就够了,多开几个,可以减少机器io带来的影响。
#参照https://www.cnblogs.com/aaron-agu/p/8003831.html,根据内核数匹配
worker_processes  1;

#nginx作为http服务器的时候:
#max_clients = worker_processes * worker_connections/2
#nginx作为反向代理服务器的时候:
#max_clients = worker_processes * worker_connections/4
#参照文章http://blog.51cto.com/liuqunying/1420556
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    upstream backend {
             #ip_hash;
             server 192.168.1.251;
             server 192.168.1.252;
             server 192.168.1.247;
     }

    server {
        listen       80;
        server_name  2;

        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;     
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值