目录默认后端服务器只能看到是前端nginx调度器访问的本机 针对前端只有单个署理服务器的解决办法 一、修改调度机nginx的虚拟主机的配置文件设定转发今后端主机的请求报文的请求首部的值; [code]vim /etc/nginx/conf.d/test.conf[/code] [code]server { listen 80; server_name www.test.net; root /data/site1/; location ~.*\.(jpg|png|jpeg)$ { proxy_pass http://192.168.1.4; } location /api { proxy_set_header X-Real-IP $remote_addr; proxy_pass http://192.168.1.6; } access_log /var/log/nginx/test_net.log ; }[/code]nginx 对别人发给它的文件没办法修改,但对他发送给别人的文件可以修改,这里在头部添加一个X-Real-IP 默认日记里记录的是访问本机的客户端IP地点,X-Real-IP这个字段可以自界说 二、重启nginx服务器[code]systemctl restart nginx 大概 nginx -s stop nginx[/code]三、修改后端主机的主配置文件[code]vim /etc/httpd/conf/httpd.conf[/code]默认记录的开头是客户端IP地点:(英文输入法下,输入/LogFormat 直接定位到这行) [code]LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined[/code]将原来的注释掉,修改为: [code]LogFormat <strong>"</strong><strong>\"%{X-Real-IP}i\"</strong> %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined[/code]四、测试访问[code]curl www.test.net/api -L[/code]五、检察后端日记[code]"192.168.1.4" 192.168.1.5 - - [08/Jun/2021:11:47:23 +0800] "GET /api HTTP/1.0" 301 231 "-" "curl/7.29.0" "192.168.1.4" 192.168.1.5 - - [08/Jun/2021:11:47:23 +0800] "GET /api/ HTTP/1.0" 200 31 "-" "curl/7.29.0"[/code]192.168.1.4 是测试服务器地点,192.168.1.5是nginx调度器地点。 到此这篇关于nginx实现IP地点透传的示例代码的文章就先容到这了,更多相干nginx IP地点透传内容请搜刮脚本之家以前的文章或继承欣赏下面的相干文章盼望各人以后多多支持脚本之家! 来源:https://www.jb51.net/server/326283x5t.htm 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|手机版|小黑屋|梦想之都-俊月星空
( 粤ICP备18056059号 )|网站地图
GMT+8, 2025-7-1 19:23 , Processed in 0.035340 second(s), 18 queries .
Powered by Mxzdjyxk! X3.5
© 2001-2025 Discuz! Team.