首页 > 解决方案 > 遇到 nginx 反向代理的奇怪问题 - 需要帮助

问题描述

我陷入了这个奇怪的问题。我在 Apache Web 服务器前面设置了 nginx 作为我的反向代理,有些我的 proxy_pass 没有按预期工作,并且在检索页面时出现 404 not found 错误。有人可以帮忙吗?


Reve Proxy IP - 10.122.0.4
Apache 10.122.0.3

在我的 Rev Proxy /etc/hosts 文件 10.122.0.3 ipbl.xxxx.xxx

这是我的 nginx 节

server {
listen 80;
server_name threat.list.xxx.xxx;
# return 301 https://$server_name$request_uri;
add_header X-Frame-Options "SAMEORIGIN";
modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/main.conf;
error_page 404 403 /custom_404.html;
location = /custom_404.html {
root /usr/share/nginx/html;
internal;
}
access_log /var/log/nginx/threatlist/access.log;
error_log /var/log/nginx/threatlist/error.log;
location / {
if ($request_method !~ "GET") {
return 403;
break;
}
include /etc/nginx/threatlistacl/ipacls;
deny all;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_connect_timeout 30s;
proxy_pass http://ipbl.xxxx.xxxx;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

现在,如果我访问 ipbl.xxx.xxx/ipbl.txt 页面,它将成功访问

Request URL: http://threat.list.xxx.xxx/ipbl.txt
Request Method: GET
Status Code: 404 Not Found
Remote Address: xxx.xx.xx.xx:80
Referrer Policy: strict-origin-when-cross-origin
Connection: keep-alive
Content-Type: text/html; charset=iso-8859-1
Date: Sat, 13 Mar 2021 04:50:53 GMT
Server: nginx
Transfer-Encoding: chunked
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-GB,en;q=0.9
Connection: keep-alive
DNT: 1
Host: threat.list.xxx.xxx
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36

还有我的 access.log

xx.xx.xx.xx - - [13/Mar/2021:10:31:17 +0530] "GET /ipbl.txt HTTP/1.1" 404 183 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36"

标签: nginxproxynginx-reverse-proxy

解决方案


我在 apache2.conf 中发布了我的虚拟主机配置,并以某种方式从启用了站点的站点中删除了我的 ipbl.conf 文件。另外,我在 /etc/hosts 中添加了条目 [不确定是否需要匹配 ServerName]


推荐阅读