我想知道你是否可以澄清为什么添加我所做的能够解决我的问题,虽然我的问题已得到解决,但我不确定它为什么会起作用而且它之前没有在设置中工作
旧设置:
我在以下地址提供的文件:
http://192.168.33.1:3000/bower_components/...
例如,(http://192.168.33.1:3000/bower_components/animate.css/animate.css
)
我有一个nginx反向代理设置 http://192.168.33.10:80/
我有以下位置区块:
location /content {
proxy_pass http://192.168.33.1:3000/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_max_temp_file_size 0;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
在此设置中,将加载以下网址:
http://192.168.33.10/content/app/index.css
但是下面的url会给我一个404,即使直接访问该文件会加载正常:
http://192.168.33.10/content/bower_components/animate.css/animate.css
(或bower_components文件夹中的任何其他内容)
修复:
在玩了一下之后,我发现如果我添加了以下位置块,那么事情就会起作用:
location /content/bower_components {
proxy_pass http://192.168.33.1:3000/bower_components;
}
我理解为什么这个额外的位置块会起作用,但我不明白为什么原始位置块不包含我添加的添加位置块的规则。
有关进展情况的任何建议吗?
答案 0 :(得分:0)
这可能是也可能不是正确答案,但是......
位置栏:
location /content {
proxy_pass http://192.168.33.1:3000/;
...
}
是以/content
到/
开头的URI的别名,缺少终止/
。
我会用:
location /content/ {
proxy_pass http://192.168.33.1:3000/;
...
}
然后根据需要修复/content
的特定情况。
我不知道为什么http://192.168.33.10/content/app/index.css
似乎有效。
有关详细信息,请参阅this document。