【发布时间】:2021-05-20 13:51:21
【问题描述】:
TCP 服务器
import socket
s1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s1.bind(('0.0.0.0', 5010))
s1.listen(1)
c1 = s1.accept()
Nginx 负载均衡配置
stream {
upstream lbc {
server localhost:5010;
server localhost:5020;
}
server {
listen 8090;
proxy_pass lbc;
}
}
卷曲命令
curl localhost:8090
netstat 输出
$> sudo netstat -nalp | egrep "5010|8090"
tcp 0 0 0.0.0.0:5010 0.0.0.0:* LISTEN 43545/python3
tcp 0 0 0.0.0.0:8090 0.0.0.0:* LISTEN 38059/nginx: master
tcp 78 0 127.0.0.1:5010 127.0.0.1:44000 ESTABLISHED 43545/python3
tcp 0 0 127.0.0.1:8090 127.0.0.1:39488 ESTABLISHED 43367/nginx: worker
tcp 0 0 127.0.0.1:44000 127.0.0.1:5010 ESTABLISHED 43367/nginx: worker
tcp 0 0 127.0.0.1:39488 127.0.0.1:8090 ESTABLISHED 43546/curl
接下来,我将 Nginx 负载平衡配置替换为如下所示的 Nginx 反向代理配置并运行 curl 命令。我看到类似的 netstat 输出(除了端口不同)。我没有看到 Nginx 的转发机制有任何变化。
Nginx 反向代理配置
http {
upstream lbc {
server localhost:5010;
server localhost:5020;
}
server {
listen 8090;
location / {
proxy_pass http://lbc;
}
}
}
那么反向代理和负载均衡有什么区别呢?
【问题讨论】:
标签: nginx load-balancing reverse-proxy