nginx - mikrotik 在 dst-nat 中更改 src 标头 ip
问题描述
首先为我糟糕的英语感到抱歉。
我有一台专用服务器和几个 vm,例如 mikrotik、nginx 等。 mikrotik 有 2 个带有公共和本地 IP 地址的以太网。当我使用 dst-nat 将端口 80 和 443 路由到 nginx 时,请求标头将源 ip 更改为我的本地 ip 作为网关。出于这个原因,一些功能,如 nginx ip 限制不起作用
我的 nat 配置
/ip firewall nat
add action=dst-nat chain=dstnat comment="Nginx - 172.16.10.50" dst-address=\
XXX.XXX.XXX.XXX dst-port=9522 protocol=tcp to-addresses=172.16.10.50 \
to-ports=22
add action=dst-nat chain=dstnat dst-address=XXX.XXX.XXX.XXX dst-port=443 \
protocol=tcp to-addresses=172.16.10.50 to-ports=443
add action=dst-nat chain=dstnat dst-address=7XXX.XXX.XXX.XXX dst-port=80 \
protocol=tcp to-addresses=172.16.10.50 to-ports=80
add action=masquerade chain=srcnat comment=internet
解决方案
nginx proxy_params
...
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-Forwarded-Proto $scheme;
...
+在 MK 上可能需要发夹
推荐阅读
- c# - 使用对象支持字段反序列化通用子类
- spring-boot - 通过使用角色保护和端点,适用于 GET 方法 bot 而不是 POST,我收到 403 Forbidden
- javascript - 如何在字符串中查找除图像标记Javascript中的url之外的所有URL
- python - selenium web 测试中的断言失败
- .net-core - .net core 2.2 中自动加载的相关数据
- python-3.x - 用于调用 os.popen 的 python 函数的 unittest
- javascript - 来自“http://website.com/assets/js/Main.js”的 Javascript 模块由于不允许的 MIME 类型(“text/html”)而被阻止
- java - 连续和同时读写ble数据通信
- scala - Scala类的out-of-class方法
- android - Google play devloper API v2 to v3怎么更新?