我有以下nginx配置。如果我删除CSS的缓存配置,则一切正常,并且所有CSS文件均通过反向代理完美加载。但是当我为.css放入缓存配置时,所有的CSS资源都会得到404:
location ~* \.css {
add_header Cache-Control public;
add_header Pragma public;
add_header Vary Accept-Encoding;
expires 1M;
}
location / {
proxy_pass http://localhost:8080;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
答案 0 :(得分:2)
Nginx选择一个location
来处理请求。 location
必须完整。参见how Nginx processes a request。
您的location ~* \.css
块缺少proxy_pass
语句。
proxy_set_header
语句可以移到外部块并由两个location
块继承。
例如:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
location / {
proxy_pass http://localhost:8080;
}
location ~* \.css {
add_header Cache-Control public;
add_header Pragma public;
add_header Vary Accept-Encoding;
expires 1M;
proxy_pass http://localhost:8080;
}