【发布时间】:2020-04-11 04:48:58
【问题描述】:
我想通过 IP 限制 Nginx reverse_proxy 中特定 php 文件的访问。
所以在我的虚拟主机路径/etc/nginx/sites-available/sub.mydmn.com 我有以下配置:
server {
server_name wwww.sub.mydmn.com sub.mydmn.com;
root /home/mydmn/;
access_log off;
# Static contents
location ~* ^.+.(png|mp4|jpeg)$ {
expires max;
}
# Limit IP access
location = /mine.php {
allow <MyIP_Here>;
deny all;
return 404;
}
# Dynamic content, forward to Apache
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
}
# Deny server with IP access!
server {
listen 80 default_server;
server_name _;
location / {
return 403;
}
}
但是当我启动服务器时,Nginx 会阻止 mine.php 的所有 IP。
有什么问题?
【问题讨论】:
-
@RogertheShrubber 我不需要白名单,我想只允许在 reverse_proxy 中使用 1 个 IP 地址访问
mine.php, -
您应该将
return 404替换为来自另一个location块的四个proxy_语句。 -
@Richard Smith 非常感谢。您能否创建完整的答案以使我更清楚?
标签: nginx reverse-proxy