【发布时间】:2023-03-05 07:36:01
【问题描述】:
我创建了一个新的 conf 文件来阻止所有公共 IP 访问,并且只给一个公共 IP 地址(办公室公共 IP)访问。但是当我尝试访问它时显示“403 Forbidden nginx”
upstream backend_solr { ip_hash; server ip_address:port; } server { listen 80; server_name www.example.com; index /example/admin.html; charset utf-8; access_log /var/log/nginx/example_access.log main; location / { allow **office_public_ip**; deny all; proxy_pass http://backend_solr-01/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location ~ /favicon\.ico { root html; } location ~ /\. { deny all; }}
但在日志中显示访问公共 ip 但被禁止
IP_Address - - [31/Jul/2017:12:43:05 +0800] "Get /example/admin.html HTTP/1.0" www.example.com "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36" "my_office _IP" "-" "-" "-" 403 564 0.000 - - -
【问题讨论】:
-
我认为如果你从文件末尾删除“location ~ /\. {deny all;}”应该可以工作。
-
我找不到
main日志格式的定义 - 但是日志条目开头的 IP 地址是什么? -
@Cninroh 该位置仅匹配具有 begins 与
.的路径元素的 URI。 -
我删除了“位置〜/\。{deny all;}”但没有运气。,我调用开始的IP地址是连接到nginx并通过示例的服务器的IP( tomcat服务器ip。)