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

来源:互联网 发布:买淘宝客链接安全吗 编辑:程序博客网 时间:2024/06/05 20:13

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 {

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

 

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 {

             #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;     

        }

    }

 

}

6.示例


环境:

nginx1:192.168.68.41

tomcat1:192.168.68.43

tomcat2:192.168.68.45

nginx安装网上很多教程,我是用yum安装的。

配置nginx:

vim /etc/nginx/conf.d/default.conf 

内容:

#负责压缩数据流gzip              on;  gzip_min_length   1000;  gzip_types        text/plain text/css application/x-javascript;#设定负载均衡的服务器列表#weigth参数表示权值,权值越高被分配到的几率越大upstream hello{    server 192.168.68.43:8080 weight=1;    server 192.168.68.45:8080 weight=1;            }   server {    #侦听的80端口    listen       80;    server_name  localhost;    #设定查看Nginx状态的地址    location /nginxstatus{         stub_status on;         access_log on;         auth_basic "nginxstatus";         auth_basic_user_file htpasswd;    }    #匹配以jsp结尾的,tomcat的网页文件是以jsp结尾    location / {        index index.jsp;        proxy_pass   http://hello;    #在这里设置一个代理,和upstream的名字一样        #以下是一些反向代理的配置可删除        proxy_redirect             off;         #后端的Web服务器可以通过X-Forwarded-For获取用户真实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;         client_max_body_size       10m; #允许客户端请求的最大单文件字节数        client_body_buffer_size    128k; #缓冲区代理缓冲用户端请求的最大字节数        proxy_connect_timeout      300; #nginx跟后端服务器连接超时时间(代理连接超时)        proxy_send_timeout         300; #后端服务器数据回传时间(代理发送超时)        proxy_read_timeout         300; #连接成功后,后端服务器响应时间(代理接收超时)        proxy_buffer_size          4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小        proxy_buffers              4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置        proxy_busy_buffers_size    64k; #高负荷下缓冲大小(proxy_buffers*2)        proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传    }}


启动:

nginx

退出:

nginx -s quit

启动nginx后,访问http://192.168.68.41/test/

会被导航到http://192.168.68.43:8080/test/ 和http://192.168.68.45:8080/test/

从而实现了负载均衡和避免单点故障。

 

////////////////////////////////
////////Sixi. Let it be.../////
//////////////////////////////


0 0
原创粉丝点击