8
Nginx支持allow
和deny
語法來限制IP, allow 192.168.1.1;
。但是如果流量通過反向代理,IP將引用代理的IP。那麼如何將其配置爲將特定來源IP列入白名單並拒絕所有其他傳入請求?Nginx - 允許源IP
Nginx支持allow
和deny
語法來限制IP, allow 192.168.1.1;
。但是如果流量通過反向代理,IP將引用代理的IP。那麼如何將其配置爲將特定來源IP列入白名單並拒絕所有其他傳入請求?Nginx - 允許源IP
remote_addr將引用代理,但您可以配置代理以發送帶有頭字段X-Real-IP/X-Forwarded-For的客戶端地址。
結合ngx_http_realip模塊,您可以修改傳入標頭以使用remote_addr的實際客戶端地址。我相信這將按預期的方式使用允許/拒絕語法。
只是澄清 - 啓用和配置模塊後,允許/拒絕語法應該是相同的。替換您的IP和您的代理地址如下。
後端nginx的允許/拒絕:
location/{
allow <your ip>;
allow 127.0.0.1;
deny all;
}
後端nginx的realip配置:
set_real_ip_from <your proxy>;
real_ip_header X-Forwarded-For;
在您的nginx代理配置:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
如果您有多個所涉及的中間代理,您需要啓用real_ip_recursive和白名單附加地址h set_real_ip_from指令。
謝謝 - 您能否展示配置如何查找此內容,因爲模塊頁面僅顯示如何獲取變量,但不顯示如何將白名單列出。 – mahemoff
我看到,它用原始IP替換了代理IP。謝謝。 – mahemoff
是的。抱歉,評論亂七八糟。更新了我原來的帖子。 – ngraves