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

 更新时间:2024年08月21日 10:57:48   作者:Alex-Lzy  
默认后端服务器只能看到是前端nginx调度器访问的本机,本文主要介绍了nginx实现IP地址透传的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

默认后端服务器只能看到是前端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基础部署Nginx服务

    小白也可以完成的0基础部署Nginx服务

    这篇文章主要为大家介绍了0基础部署Nginx服务的实现方式,非常简单详细零基础小白跟着做也可以完成,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-03-03
  • 详解Nginx服务器中map模块的配置与使用

    详解Nginx服务器中map模块的配置与使用

    这篇文章主要介绍了Nginx服务器中map模块的配置与使用,文中同时给出了ngx_http_map_module模块的map命令用于制作服务器限速白名单的示例,需要的朋友可以参考下
    2016-01-01
  • nginx获取真实的ip的方法

    nginx获取真实的ip的方法

    在实际应用中,我们可能需要获取用户的ip地址,比如做异地登陆的判断等等,本文主要介绍了nginx获取真实的ip的方法,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • Linux系统下nginx日志每天定时切割的脚本写法

    Linux系统下nginx日志每天定时切割的脚本写法

    本篇文章给大家分享使用Linux系统自带的命令logrotate对Nginx日志进行切割的方法,对nginx日志切割脚本感兴趣的朋友一起学习吧
    2016-11-11
  • Nginx 设置域名转发到指定端口的实现方法

    Nginx 设置域名转发到指定端口的实现方法

    这篇文章主要介绍了Nginx 设置域名转发到指定端口的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 深入浅析nginx四种调度算法和进阶

    深入浅析nginx四种调度算法和进阶

    这篇文章主要介绍了深入浅析nginx四种调度算法和进阶,文中给大家提到了upstream 支持4种负载均衡调度算法,需要的朋友可以参考下
    2018-06-06
  • 详解使用Nginx和uWSGI配置Python的web项目的方法

    详解使用Nginx和uWSGI配置Python的web项目的方法

    这篇文章主要介绍了使用Nginx和uWSGI配置Python的web项目的方法,与其他CGI连接方式相比uwsgi的连接性能也较为出众,需要的朋友可以参考下
    2015-12-12
  • Nginx http升级到https的完整步骤

    Nginx http升级到https的完整步骤

    这篇文章主要给大家介绍了关于Nginx http升级到https的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用Nginx具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • nginx不支持apk ipa文件下载的设置方法

    nginx不支持apk ipa文件下载的设置方法

    今天在帮客户配置nginx服务器的时候,对方需要支持apk ipa文件下载,这里简单分享下,方便需要的朋友
    2014-03-03
  • Nginx下升级https的方法步骤

    Nginx下升级https的方法步骤

    这篇文章主要介绍了Nginx下升级https的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06

最新评论