相关疑难解决方法(0)

如何在nginx配置中有条件地添加标头?

如何在nginx(1.4.6 ubuntu)配置中有条件地添加标头?

起初我试过这样的.

 location / {
      add_header X-TEST-0 always-0;

      set $true 1;
      if ($true) {
          add_header X-TEST-1 only-true;
      }

      add_header X-TEST-2 always-2;
  }    
Run Code Online (Sandbox Code Playgroud)

虽然我期望我的nginx设置所有标题(X-TEST-0,1,2),但它只添加了标题X-TEST-1.

接下来我试着这样.

 location / {
      add_header X-TEST-0 always-0;

      ##set $true 1;
      ##if ($true) {
      ##    add_header X-TEST-1 only-true;
      ##}

      add_header X-TEST-2 always-2;
  }    
Run Code Online (Sandbox Code Playgroud)

我的nginx按照我的预期添加了标题X-TEST-1和X-TEST-2.

我的问题是......

  1. 如何有条件地添加标题?

  2. 为什么nginx只添加X-TEST-1和我上面的第一个例子?

提前致谢!

nginx

27
推荐指数
2
解决办法
1万
查看次数

如何有时只在nginx中添加标题

我有一个API服务器的nginx代理.API有时会设置缓存控制标头.如果API没有设置缓存控件,我希望nginx覆盖它.

我怎么做?

我想我想做这样的事情,但它不起作用.

location /api {
  if ($sent_http_cache_control !~* "max-age=90") {
    add_header Cache-Control no-store;
    add_header Cache-Control no-cache;
    add_header Cache-Control private;
  }
  proxy_pass $apiPath;
}
Run Code Online (Sandbox Code Playgroud)

nginx cache-control

8
推荐指数
2
解决办法
8603
查看次数

NGINX,ssl,CORS和Access-Control-Allow-Origin值跨站点缓存

我正在尝试编写一个可以同时在http和https上处理两个站点的nginx配置,只要客户端从未访问过两个站点,它似乎就可以工作,但是如果这样做的话,则存在缓存/跨站点问题。

# Allow cross origin
location ~* \.(eot|svg|ttf|woff|woff2|json)$ {
    if ($http_origin ~* (https?://(admin\.)?example\.com(:[0-9]+)?)) {
        add_header 'Access-Control-Allow-Origin' "$http_origin";
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,如果我加载example.com,则一切正常,但是当我加载admin.example.com时,会遇到类似问题

(索引):1 XMLHttpRequest无法加载 http://origin.example.com/js/data-lib/currency.json。“ Access-Control-Allow-Origin”标头具有值“ http:// example”。com”不等于提供的来源。来源'http:// admin。例子 因此,不允许访问“ com”。

据我所知,这是因为浏览器将原始请求及其附带的标头缓存了起来,现在,即使来自服务器的另一个请求允许它,它也拒绝了我。证明是,如果我在Chrome开发者工具中选中了“禁用缓存”,则该问题将永远不会发生。

我该如何解决这个问题?是否可以在一个配置中同时完成多个域+ ssl / http,还是有必要根据请求的域和协议将其拆分?

(对我示例中的可怕空间感到抱歉,显然,StackOverflow认为我在编写示例时试图发布链接)

xss http nginx http-caching cors

5
推荐指数
1
解决办法
2424
查看次数

标签 统计

nginx ×3

cache-control ×1

cors ×1

http ×1

http-caching ×1

xss ×1