我正在尝试使用 Nginx 作为 Apache 的反向代理来缓存静态文件等。我在新安装时遇到一个问题,即它没有将 URI 传递给 Apache。基本上我有一个 vBulletin 论坛,我正在使用 vBSEO 作为 SEO 代理。问题是它为每个 URL 生成 404,除了已经存在的文件。
答案1
您能否给我们提供您 nginx 配置的相关部分?目前我们无法猜测哪里出了问题(尽管可能:在 hosts 文件中不存在的情况下使用“localhost”,因此无法解析为 127.0.0.1、apache 的端口号错误、忘记添加主机头等)。通常,它会是这样的:
server {
listen 80;
server_name www.example.com;
# normally some checking here for static content which exists as file
# like images, js, etc, with a 'break', with at the end:
location / {
proxy_pass http://127.0.0.1:<portnumber apache is on>/;
proxy_redirect off;
proxy_set_header Host $host;
}
}
答案2
好吧,我将其追溯到 SEO 友好插件 (vBSEO)。它生成了带有 .html 扩展名的链接,似乎 nginx 已将其设置为缓存。由于这些链接在物理上不存在,因此它产生了 404 错误。