【问题标题】:In Nginx, "etag" directive doesn't work for proxy_pass?在 Nginx 中,“etag”指令不适用于 proxy_pass?
【发布时间】:2016-01-30 15:03:10
【问题描述】:

我使用的是 Nginx 1.9.2,下面是我的配置

upstream httpserver0{
            server 127.0.0.1:35011  max_fails=3 fail_timeout=30s; #H_server0                                                                                                                                                                                                                
}

server {
            listen       443 ssl;
            listen       80;
            server_name  11.22.33.44; #my_server_name                                                                                                                                                                                                          
            etag  on;

            location  ~* \.(ts|raw)$ {
              set $server_id "0";
              if ( $uri ~ ^/(.*cfs+)/(.*)$ ){
                set $server_id $1;
              }
              if ( $server_id = "4cfs" ){
                proxy_pass  http://httpserver0$request_uri;
              }
            }
}

我使用upstream module 和proxy_pass 进行反向代理,并在服务器块中通过etag on 启用了etag 功能。

但是,当我检查 HTTP 响应的 Header 时,我根本没有找到 etag 字段..

有人对此有想法吗?谢谢!

【问题讨论】:

    标签: http nginx https etag


    【解决方案1】:

    不,它不适用于proxy_pass

    http://nginx.org/r/etag

    静态资源启用或禁用“ETag”响应标头字段的自动生成。

    更重要的是,它默认是打开的。

    【讨论】:

    • 谢谢,所以 nginx 不能为反向代理添加 etag。似乎唯一的方法是将 etag 添加到上游源。对吗?
    • 是的。只有上游知道如何生成 Etag 以及何时应该将其视为过时。
    猜你喜欢
    • 1970-01-01
    • 2017-04-22
    • 1970-01-01
    • 2015-01-19
    • 2021-06-15
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 2019-01-06
    相关资源
    最近更新 更多