正向代理
server {
listen 8080; # Nginx监听本地的8080端口以接收客户端请求
server_name 192.168.21.100; # 可以替换为实际的主机名或者IP地址
# 配置location{}块来定义特定的请求路径如何被代理
location / {
proxy_pass http://192.168.21.100:8090; # 将请求转发到上游服务器
# 这里'upstream_server'可以是域名或者IP:端口,例如 'http://example.com' 或者 'http://10.0.0.1:8080'
# 可选配置,设置代理的相关参数
proxy_set_header Host $host; # 保持原始Host头信息
proxy_set_header X-Real-IP $remote_addr; # 添加客户端真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade; # 对于WebSockets等协议支持升级请求
proxy_set_header Connection "upgrade";
proxy_read_timeout 300s; # 设置代理连接读取超时时间
}
}
反向代理
http {
upstream backend_servers {
# 定义一组后端服务器,可以使用ip_hash等方式进行负载均衡
server backend1.example.com weight=3; # 给这台服务器分配更高的权重
server backend2.example.com:8080; # 可以指定不同的端口
server 192.168.1.10 backup; # 设置为备份服务器,在其他服务器不可用时启用
}
server {
listen 80; # Nginx监听的公网端口
server_name example.com; # 域名
location / { # 针对所有请求路径
proxy_pass http://backend_servers; # 将请求转发到上游服务器组
proxy_set_header Host $host; # 保持原始Host头信息
proxy_set_header X-Real-IP $remote_addr; # 添加客户端真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off; # 禁止重定向(根据实际情况调整)
proxy_read_timeout 60s; # 设置代理连接读取超时时间
}
}
}