V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LxnChan
V2EX  ›  程序员

如何让被 Nginx 代理的后端接收到真正的服务器 IP?

  •  
  •   LxnChan ·
    lxnchan · 2022-06-02 15:59:49 +08:00 · 2127 次点击
    这是一个创建于 898 天前的主题,其中的信息可能已经有所发展或是发生改变。

    整了个 Wordpress 玩玩,但是在代理这块出了点问题。

    目前的架构如下:

    Apache2 通过端口 1111 提供服务,然后 nginx 代理该端口。

    但是在前端访问时发现 Wordpress 的部分素材并没有识别到正确的服务器地址,而是代理中填写的地址。

    请问如何解决?

    注:实际端口 1111 在外网是不可访问的。

    9 条回复    2022-06-02 20:24:09 +08:00
    westoy
        1
    westoy  
       2022-06-02 16:05:19 +08:00
    apache 设置下 mod_remoteip 的参数
    learningman
        2
    learningman  
       2022-06-02 16:06:48 +08:00 via Android
    X Forward For
    microxiaoxiao
        3
    microxiaoxiao  
       2022-06-02 17:23:54 +08:00 via Android
    哈哈,我在做 minio 分发的时候就有类似的问题,你需要在 nginx 转发请求过程中,修改 host
    wanguorui123
        4
    wanguorui123  
       2022-06-02 17:37:45 +08:00 via iPhone   ❤️ 1
    X-Forwarded-For X-Real-IP
    yohole
        5
    yohole  
       2022-06-02 17:41:12 +08:00
    首先给你这个提问题的内容给个赞!

    然后要说的你,你这个直接把关键字打到百度或者谷歌的话,答案其实就直接出来了。。。。而且效率比发个帖要高得多。。。。
    dem0ns
        6
    dem0ns  
       2022-06-02 17:58:52 +08:00
    Nginx 添加 header X-Forwarded-For 值设置为 remote_ip ,后端获取 header 中的 X-Forwarded-For
    ellaalinda
        7
    ellaalinda  
       2022-06-02 19:53:29 +08:00
    # 向后端传递访客 ip
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    nuyan
        8
    nuyan  
       2022-06-02 20:05:02 +08:00   ❤️ 1
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    microxiaoxiao
        9
    microxiaoxiao  
       2022-06-02 20:24:09 +08:00   ❤️ 1
    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 Host $http_host; //这个地方就是填写 Host 字段的,

    我的环境 minio 监听的是 127.0.0.1:9000, 那么它在进行签名校验的时候,转发默认是不对的,就修改成了下面的。//ubuntu20.04
    proxy_set_header Host "127.0.0.1:9000";
    要修改
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2814 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:18 · PVG 16:18 · LAX 00:18 · JFK 03:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.