正向代理
代理客户端
场景
- 通过Nginx绕开对客户端ip拦截的请求。
比如说,客户端A的ip在服务器的黑名单中,那么客户端无法直接请求成功服务器。则可通过Nginx将请求发送到服务器。 - 隐藏客户端ip。
例如“梯子”、“VPN”。
反向代理
代理服务器端
场景
- 负载均衡
配置
单台服务器
server {
listen 80;
listen [::]:80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
#nginx自带主页面配置
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
# 本次配置服务器新增内容
location /boot {
proxy_pass http://172.16.0.3:8089/web; # 单个服务器配置
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
多台服务器
# 新增内容 多个服务器配置
upstream backend {
ip_hash; #负载均衡策略
server 172.16.0.3:8089; # 第一个 Tomcat 服务器的本地端口
server 172.16.0.3:8088; # 第二个 Tomcat 服务器的本地端口
}
server {
listen 80;
listen [::]:80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
#nginx自带主页面
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#服务器配置
location /boot {
proxy_pass http://backend/web; # 多个服务器配置
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
集群
使用Nginx+Keeplives+VIP,避免部署Nginx的主机宕机时,请求全部失败。