Nginx 负载均衡 vs 反向代理

Nginx 反向代理之端口转发

反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个服务器

检查 Nginx 配置是否有错误

格式检查 /etc/nginx/nginx.conf

1
nginx -t -c /etc/nginx/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
http {
// 基于域名的代理

// 当通过 v1.demo.com:80 端口访问这个服务器时, 该请求会被转发到 127.0.0.1:9992
server {
listen 80;
server_name v1.demo.com;
// 通过访问的路径来处理转发 ...
location / {
proxy_pass http://127.0.0.1:9992;
}
}

// 当通过 v2.demo.com:80 端口访问这个服务器时, 该请求会被转发到 127.0.0.1:9991
server {
listen 80;
server_name v2.demo.com;
location / {
proxy_pass http://127.0.0.1:9991;
}
}

// 基于路径的代理

server {
listen 80;
server_name www.aaa.com aaa.com;
location / {
proxy_pass http://www.aaa.com:8087/proj1/;
}
location /proj1/ {
proxy_pass http://www.aaa.com:8087/proj1/;
}
}

server {
listen 80;
server_name www.bbb.com bbb.com;
location / {
proxy_pass http://www.aaa.con:8087/proj2/;
}
location /proj2/ {
proxy_pass http://www.aaa.con:8087/proj2/;
}
}
}

负载均衡

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
http {

// 定义轮训负载列表, v1.5.9 之后支持
upstream backends {
server 192.168.0.100:8080 weight=2 max_fails=3 fail_timeout=15;
server 192.168.0.101:8080 weight=4;
server example.com:8080 weight=1 max_conns=1000;
}

// 将代理地址指向负载列表
server {
listen 80;
server_name v1.demo.com;

location / {
proxy_pass http://backends;
}
}

// 定义基于 url 的哈希负载, v1.7.2 之后支持
upstream apis {
server 192.168.0.100:8080;
server 192.168.0.101:8080;
hash $request_uri;
}

// 将代理地址指向负载列表
server {
listen 80;
server_name v2.demo.com;

location / {
proxy_pass http://apis;
}
}
}
Donate - Support to make this site better.
捐助 - 支持我让我做得更好.