nginx - 使用 gzip 压缩为 .css 文件启用缓存
nginx - enabling cache for .css file with gzip compression
我有以下 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;
}
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;
}
我有以下 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;
}
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;
}