我正在努力弄清楚为什么会发生这种情况。我从未在这个服务器上遇到过这样的问题,所以我有点困惑。
服务器是 nginx + Apache 2.4 反向代理。因此 nginx 我有这个代理密码:
location ~ \.cgi$ {
try_files $uri =404;
gzip off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8181;
}
然后对于 Apache 配置中的域,我有:
<VirtualHost *:8181>
# other stuff here
<Directory "/the/web/directory/*">
Options +ExecCGI +FollowSymLinks +MultiViews
AllowOverride AuthConfig
Require all granted
AddHandler cgi-script .cgi .pl
</Directory>
</VirtualHost>
域名已启用并正常运行。然而,在为某人开发网站时,我遇到了一个奇怪的错误。
页面时不时出现 404 错误:
..但其余时间它工作正常。在这种情况下,我向它发送了完全相同的参数(只需重新提交表单)。我已检查过问题是否出在 AJAX 请求上,但如果我在选项卡中打开 URL 并按几次重新加载进行测试,我仍会遇到同样的问题。
Apache 日志文件中没有出现任何有用的信息:
authorization result of <RequireAny>: granted, referer: https://x.co.uk/contact.html
我非常确信错误来自 Apache 端,因为 404 的响应是:
Not Found
The requested URL /cgi-bin/contact.cgi was not found on this server.
Apache/2.4.18 (Ubuntu) Server at x.co.uk Port 8181
我有点不知道这是怎么回事。有什么想法吗?
答案1
嗯,很奇怪 - 放弃它。我重新启动了它,现在一切正常!非常奇怪的是,域错误日志中没有错误消息 - 主 Apache 错误日志(在 /var/log 中)也没有错误消息