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

时间:2021-09-04 02:58:54

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)内容,可调整相关配置。

反向代理配置示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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的问题。

负载均衡配置示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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
 
    }
 
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/jacktang/p/3669115.html