本文共 3439 字,大约阅读时间需要 11 分钟。
正向代理是指客户端通过代理服务器接触目标服务端的代理方式。与直接访问服务端相比,正向代理的优势在于可隐藏客户端IP地址,提升网络安全性。Nginx正向代理的核心配置主要包括proxy_pass指令和缓存设置。
正向代理指定百度网址访问
Nginx正向代理的基本配置示例如下:
server { listen 8888; server_name localhost; resolver 8.8.8.8 valid=300 ipv6=off; proxy_read_timeout 30s; proxy_send_timeout 30s; proxy_connect_timeout 30s; charset utf-8; access_log logs/host.access.log main; location / { root html; index index.html index.htm; proxy_pass scheme://http_host$request_uri; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $upstream_port; }} 正向代理指定所有网址
完整的正向代理配置示例:
server { listen 80; server_name example.com; resolver 8.8.8.8 valid=300 ipv6=off; proxy_read_timeout 30s; proxy_send_timeout 30s; proxy_connect_timeout 30s; charset utf-8; access_log logs/nginx/access.log main; location / { root html; index index.html index.htm; proxy_pass http://backend.example.com; 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_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $upstream_port; }} 反向代理(负载均衡)是指代理服务器将客户端请求转发至多台后端服务器之一。其主要作用包括请求分配、负载均衡、系统可用性、缓存加速及安全防护等。
反向代理的核心配置包括负载均衡算法、后端服务器管理及会话保持等功能。
四层代理(传输层)仅处理IP地址和端口,实现简单的数据转发,速度较快,适合内部使用,未对请求进行深度处理。
七层代理(应用层)基于HTTP协议,能够解析请求,提供更高级功能,如安全、过滤、流量控制等,适用于对外服务的场景。
负载均衡配置需根据具体需求选择合适的算法,常用算法包括轮巡、加权轮巡、最小连接数及IP_hash等。
1. 轮巡算法(round robin):适用于后端服务器性能相同的情况,请求按顺序轮流分配。
2. 加权轮巡(weighted round robin):可为每台服务器设置权重,流量按权重比例分配。
3. 最小连接数算法(least_conn):将请求发送至连接数较少的后端服务器,避免负载集中。
4. IP hash算法(ip_hash):根据客户端IP计算Hash值,固定分配至同一服务器,适合高并发场景。
1. 七层代理配置需在http模块中使用upstream命令,指定后端服务器地址及权重。
2. 四层代理配置需在全局配置中使用stream命令,指定负载均衡算法及权重。
示例:七层负载均衡配置
http { upstream backend 192.168.1.100 weight=1; upstream backend2 192.168.1.101 weight=1; server { listen 80; server_name example.com; proxy_pass http://backend; }} 示例:四层负载均衡配置
events {} stream { upstream backend 192.168.1.100:80 weight=1; upstream backend2 192.168.1.101:80 weight=1; server { listen 80; proxy_pass stream_backend; } } 基于域名的反向代理配置示例:
在Nginx配置中,需先配置resolver解析器,指定DNS服务器及缓存时间:
server { listen 80; server_name example.com; resolver 192.168.1.1 valid=300; location / { proxy_pass http://backend.example.com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }} 三个IP的反向代理配置示例:
server { listen 80; server_name 192.168.1.100 192.168.1.101 192.168.1.102; resolver 192.168.1.1 valid=300; location / { proxy_pass http://backend.example.com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }} 四层代理配置需在全局配置中使用stream模块:
events {} stream { upstream backend 192.168.1.100:80 weight=1; upstream backend2 192.168.1.101:80 weight=1; server { listen 80; proxy_pass stream_backend; } } 注意事项:四层代理需确保后端服务器监听的端口与配置一致,避免冲突。
转载地址:http://fzjfk.baihongyu.com/