找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 51|回复: 4

请教一个nginx反代配置问题

[复制链接]

99

主题

528

回帖

1397

积分

金牌会员

积分
1397
发表于 2019-3-21 23:40:25 | 显示全部楼层 |阅读模式
先贴个我的配置:
```
[ol]
  • server
  • {
  •         listen 8 ssl http2;
  •     server_name domain.com;
  •     ssl_certificate    /etc/default/fullchain.cer;
  •     ssl_certificate_key    /etc/default/domain.com.key;
  •         error_page  497 https://$host:8$request_uri;
  •     location / {
  •     proxy_redirect off;  
  •     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-Scheme $scheme;
  •     proxy_pass https://192.168.2.5:5001;
  •     }
  • }[/ol]复制代码
    ```
    IP 和端口的情况:
    客户端( 192.168.2.2 )→Nginx ( domain.com:8 )→服务器后端( https://192.168.2.5:5001 )

    我想实现这样的配置,通俗来说就是当「客户端」输入:「 https://domain.com:8 」访问的时候,服务器后端接受到的信息是:「客户端」的 IP 是「 192.168.2.2 」是通过访问「 https://192.168.2.5:5001 」来访问服务器后端的,也就是说当 Nginx 完全不存在一样,这样的话应该怎么样配置呢?
    谢谢!
  • 回复

    使用道具 举报

    45

    主题

    731

    回帖

    1715

    积分

    金牌会员

    积分
    1715
    发表于 2019-3-21 23:42:04 | 显示全部楼层
    本帖最后由 yaren 于 2019-3-21 23:43 编辑

    #这样配置可以通过x-forwarded-for获取用户真实ip
    proxy_set_header X-Real-IP $remote_addr;


    你不是配了吗
    回复

    使用道具 举报

    99

    主题

    528

    回帖

    1397

    积分

    金牌会员

    积分
    1397
     楼主| 发表于 2019-3-21 23:48:03 | 显示全部楼层

    yaren 发表于 2019-3-21 23:42

    #这样配置可以通过x-forwarded-for获取用户真实ip
    proxy_set_header X-Real-IP $remote_addr;

    真实IP服务端能获取,我想要服务端判断客户端是访问的「https://192.168.2.5:5001」,而不是通过nginx代理访问的「https://domain.com:8」
    回复

    使用道具 举报

    6

    主题

    318

    回帖

    660

    积分

    高级会员

    积分
    660
    发表于 2019-3-21 23:42:00 | 显示全部楼层

    toyst 发表于 2019-3-21 23:48

    真实IP服务端能获取,我想要服务端判断客户端是访问的「https://192.168.2.5:5001」,而不是通过nginx代 ...

    不能,
    最后的服务端是看到的客户端ip是根据与自己建立 tcp 连接的 ip 确定的,
    除非他自己设定读取 http header 的某一字段为客户端ip,
    回复

    使用道具 举报

    24

    主题

    487

    回帖

    1110

    积分

    金牌会员

    积分
    1110
    发表于 2019-3-21 23:57:47 | 显示全部楼层
    本帖最后由 爱纯粹 于 2019-3-22 00:07 编辑

    https://www.nginx.com/blog/ip-transparency-direct-server-return-nginx-plus-transparent-proxy/
    里面的 IP Transparency 就是你要的功能,但是只有收费版有。
    所以还是老实改后端用HTTP头传客户端IP吧
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2025-4-24 01:49 , Processed in 0.020549 second(s), 3 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表