当前位置: 代码网 > it编程>数据库>MsSqlserver > nginx实现IP地址透传的示例代码

nginx实现IP地址透传的示例代码

2024年08月21日 MsSqlserver 我要评论
默认后端服务器只能看到是前端nginx调度器访问的本机针对前端只有单个代理服务器的解决办法一、修改调度机nginx的虚拟主机的配置文件设定转发往后端主机的请求报文的请求首部的值;vim /etc/ng

默认后端服务器只能看到是前端nginx调度器访问的本机

针对前端只有单个代理服务器的解决办法

一、修改调度机nginx的虚拟主机的配置文件

设定转发往后端主机的请求报文的请求首部的值;

vim /etc/nginx/conf.d/test.conf
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 ;
}

nginx 对别人发给它的文件没办法修改,但对他发送给别人的文件可以修改,这里在头部添加一个x-real-ip

默认日志里记录的是访问本机的客户端ip地址,x-real-ip这个字段可以自定义

二、重启nginx服务器

systemctl restart nginx
或者
nginx -s stop
nginx

三、修改后端主机的主配置文件

vim /etc/httpd/conf/httpd.conf

默认记录的开头是客户端ip地址:(英文输入法下,输入/logformat  直接定位到这行)

logformat "%h %l %u %t \"%r\" %>s %b \"%{referer}i\" \"%{user-agent}i\"" combined

将原来的注释掉,修改为:

logformat <strong>"</strong><strong>\"%{x-real-ip}i\"</strong> %h %l %u %t \"%r\" %>s %b \"%{referer}i\" \"%{user-agent}i\"" combined

四、测试访问

curl www.test.net/api -l

五、查看后端日志

"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"

192.168.1.4 是测试服务器地址,192.168.1.5是nginx调度器地址。

到此这篇关于nginx实现ip地址透传的示例代码的文章就介绍到这了,更多相关nginx ip地址透传内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com