nginx 優雅解決子域名跨域

1.conf

 server {
        listen       80;

	    server_name  www.caicongyang.com.cn;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;



	location / {
           proxy_pass http://s2b-009-prod.domestictrade-web.s2b-009.gw.yonghui.cn;

       set $cors '';
 	       if ($http_origin ~* ^(http|https)?://(.*)\.caicongyang\.com\.cn$ ) {
                set $cors 'true';
          }

           if ($cors = 'true') {
            add_header 'Access-Control-Allow-Origin' "$http_origin" always;
            add_header 'Access-Control-Allow-Credentials' 'true' always;
            add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;
            add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With' always;
           # required to be able to read Authorization header in frontend
            #add_header 'Access-Control-Expose-Headers' 'Authorization' always;
    }

    if ($request_method = 'OPTIONS') {
            # Tell client that this pre-flight info is valid for 20 days
            add_header 'Access-Control-Max-Age' 1728000;
            add_header 'Content-Type' 'text/plain charset=UTF-8';
            add_header 'Content-Length' 0;
            return 204;
    }

 }

2. test it

curl -I -X OPTIONS -H "Origin: http://www.baidu.com" "https://www.caicongyang.com.cn"

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章