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

2022-06-02 15:59:49 +08:00
 LxnChan

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

目前的架构如下:

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

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

请问如何解决?

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

2048 次点击
所在节点    程序员
9 条回复
westoy
2022-06-02 16:05:19 +08:00
apache 设置下 mod_remoteip 的参数
learningman
2022-06-02 16:06:48 +08:00
X Forward For
microxiaoxiao
2022-06-02 17:23:54 +08:00
哈哈,我在做 minio 分发的时候就有类似的问题,你需要在 nginx 转发请求过程中,修改 host
wanguorui123
2022-06-02 17:37:45 +08:00
X-Forwarded-For X-Real-IP
yohole
2022-06-02 17:41:12 +08:00
首先给你这个提问题的内容给个赞!

然后要说的你,你这个直接把关键字打到百度或者谷歌的话,答案其实就直接出来了。。。。而且效率比发个帖要高得多。。。。
dem0ns
2022-06-02 17:58:52 +08:00
Nginx 添加 header X-Forwarded-For 值设置为 remote_ip ,后端获取 header 中的 X-Forwarded-For
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
2022-06-02 20:05:02 +08:00
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
2022-06-02 20:24:09 +08:00
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";
要修改

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/856971

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX