nginx-使用gzip压缩为.css文件启用缓存

时间:2019-02-09 16:27:20

标签: nginx nginx-location nginx-reverse-proxy

我有以下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;
        }

1 个答案:

答案 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;
}