nginx反向代理和负载均衡的简单部署

Posted 领着猫散步的鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx反向代理和负载均衡的简单部署相关的知识,希望对你有一定的参考价值。

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;

             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;      
      }
代理地址根据实际情况修改。
4.  负载均衡配置
  nginx 的 upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

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

负载均衡配置示例:

upstream backend {
             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命名和服务器地址根据实际情况修改。

5. 完整配置示例nginx.conf:
 
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    upstream backend {
             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;    
        }
    }
}

以上是关于nginx反向代理和负载均衡的简单部署的主要内容,如果未能解决你的问题,请参考以下文章

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

Nginx + Tomcat 反向代理 负载均衡 集群 部署指南

Nginx反向代理实现负载均衡配置图解

Nginx简单实现反向代理和负载均衡

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

##Nginx反向代理负载均衡