首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >除了HTML页面之外,NGINX给出了所有的404错误

除了HTML页面之外,NGINX给出了所有的404错误
EN

Server Fault用户
提问于 2016-08-15 17:11:21
回答 1查看 18.2K关注 0票数 7

我在码头容器中将nginx设置为反向代理,以链接到容器外部的站点。我有一个vhost配置设置,如下所示(我尝试在家庭助理的位置之前添加^~ ):

代码语言:javascript
复制
server { # simple reverse-proxy
    listen       80;

    location / {
        proxy_pass http://192.168.1.99:6789;
    }

    location ^~ /home-assistant {
        proxy_pass http://192.168.1.99:8123/;
    }

    location /calibre-web/ {
        proxy_pass http://192.168.1.99:8181/;
    }

  }

对于家庭助理和口径网站,页面加载,但我得到404错误的所有其他项目(图像,CSS等.)。如果我试图在应用程序中单击一个链接,它将我链接到192.168.1.99/file,而不是192.168.1.99/site-文件夹/file。下面是日志中的几条记录(注意一个200响应,另一个404响应)。我在这里做错什么了?提前谢谢你的帮助。

代码语言:javascript
复制
192.168.1.6 - randy [15/Aug/2016:03:15:42 +0000] "GET /frontend/panels/dev-template-0a099d4589636ed3038a3e9f020468a7.html HTTP/1.1" 404 199 "http://192.168.1.99/home-assistant/" "Mozilla/5.0 (X11; CrOS x86_64 8350.60.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.85 Safari/537.36"

192.168.1.6 - randy [15/Aug/2016:03:15:42 +0000] "GET /frontend/panels/logbook-66108d82763359a218c9695f0553de40.html HTTP/1.1" 404 199 "http://192.168.1.99/home-assistant/" "Mozilla/5.0 (X11; CrOS x86_64 8350.60.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.85 Safari/537.36"

192.168.1.6 - randy [15/Aug/2016:03:17:54 +0000] "GET /home-assistant/ HTTP/1.1" 200 1654 "-" "Mozilla/5.0 (X11; CrOS x86_64 8350.60.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.85 Safari/537.36"

192.168.1.6 - randy [15/Aug/2016:03:17:55 +0000] "GET /static/icons/favicon-192x192.png HTTP/1.1" 404 91 "http://192.168.1.99/home-assistant/" "Mozilla/5.0 (X11; CrOS x86_64 8350.60.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.85 Safari/537.36"

192.168.1.6 - randy [15/Aug/2016:03:17:55 +0000] "GET /static/core-457d5acd123e7dc38947c07984b3a5e8.js HTTP/1.1" 404 91 "http://192.168.1.99/home-assistant/" "Mozilla/5.0 (X11; CrOS x86_64 8350.60.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.85 Safari/537.36"

这是我的根nginx.conf的副本。我猜错误在这里的某个地方,我只是不知道在哪里。

EN

回答 1

Server Fault用户

发布于 2016-08-16 23:52:32

一种解决方案可能是在proxy_pass指令中不传递URI:

代码语言:javascript
复制
location ^~ /home-assistant {
    proxy_pass http://192.168.1.99:8123;
}

location ^~ /calibre-web/ {
    proxy_pass http://192.168.1.99:8181;
}

注意/语句中端口号后面缺少的proxy_pass字符。这意味着nginx将把发送到服务器的URI传递给应用服务器。

使用/字符( URI ),它将用它替换请求URI。

这种行为记录在http://nginx.org/en/docs/http/ngx_http_代理_module.html#proxy_经过中。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/796930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档