小编Sta*_*erd的帖子

nginx 为多个子域启用 CORS

我的nginx版本:nginx/1.4.6

我在为多个子域启用 CORS 时遇到问题。我检查了https://gist.github.com/algal/5480916http://rustyrazorblade.com/post/2013/2013-10-31-cors-with-wildcard-domains-and-nginx/但两种解决方案都没有不适合我。

它看起来像正则表达式

if ($http_origin ~* (.*\.mydomain.com)) {
    set $cors "true";
}
Run Code Online (Sandbox Code Playgroud)

不匹配且 $cors 未设置为“true”,因此不会执行 add_header 'Access-Control-Allow-Origin' "$http_origin"。

我也试过正则表达式

$http_origin ~* (https?://.*.mydomain.com)

或者

$http_origin ~* https?://.*.mydomain.com

但在任何一种情况下,正则表达式都不匹配,$cors 永远不会设置为“true”。

我错过了什么?

我的 nginx 配置 - 花括号中的域名(正在被 Ansible 取代):

upstream varnish {
  server localhost:80;
}

server {
    listen 443 default;
    server_name {{vhost}};

    ssl                  on;
    ssl_certificate      /etc/ssl/certs/ssl.{{domain}}.crt;
    ssl_certificate_key  /etc/ssl/private/{{domain}}.key;

    ssl_session_timeout  5m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    #ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    #ssl_prefer_server_ciphers   on;

    # workaround remote exploit. Fixed in 1.5.0, 1.4.1
    # …
Run Code Online (Sandbox Code Playgroud)

nginx

8
推荐指数
3
解决办法
3万
查看次数

标签 统计

nginx ×1