博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx配置允许指定域名下所有二级域名跨域请求
阅读量:6268 次
发布时间:2019-06-22

本文共 1718 字,大约阅读时间需要 5 分钟。

核心原理是根据请求域名匹配是否是某域名的二级域名判断是否添加允许跨越头。

 

#畅游www    server {        listen 8015;        server_name test-tl.changyou.com;        root E:/work/site/www ;        location ~* \.(eot|ttf|woff|svg|otf)$ {            set $flag '0';            if ( $http_origin ~* ^(http?:\/\/.*\.changyou\.com:8014$) ){                 set $flag '1';            }            if ( $http_origin ~* ^(http?:\/\/.*\.cy\.com:8014$) ){                 set $flag '1';            }            if ($flag = '1') {                 add_header 'Access-Control-Allow-Origin' $http_origin;                 add_header 'Access-Control-Allow-Credentials' 'true';                 add_header 'Access-Control-Allow-Methods' 'GET,POST';                             }        }    }

 

匹配文件类型: eot|ttf|woff|svg|otf 

为这几种文件类型设置跨域访问

$http_origin 为nginx全局变量,即域名
$http_origin ~* ^(http?:\/\/.*\.changyou\.com:8014$)

匹配所有changyou.com:8014端口下面的二级域名

由于nginx无法使用or语法,所以判断 匹配所有cy.com:8014端口下面的二级域名

用变量赋值的方法实现了

set $flag '0';            if ( $http_origin ~* ^(http?:\/\/.*\.changyou\.com:8014$) ){                 set $flag '1';            }            if ( $http_origin ~* ^(http?:\/\/.*\.cy\.com:8014$) ){                 set $flag '1';            }

如果默认是80端口,就把:8014去掉就行。

其实核心代码就是:

add_header 'Access-Control-Allow-Origin' $http_origin;                 add_header 'Access-Control-Allow-Methods' 'GET,POST';

 

(1)Access-Control-Allow-Origin

该字段是必须的。它的值要么是请求时Origin字段的值,要么是一个*,表示接受任意域名的请求。

(2)Access-Control-Request-Method

该字段是必须的,用来列出浏览器的CORS请求会用到哪些HTTP方法

(3)Access-Control-Allow-Credentials

该字段可选。它的值是一个布尔值,表示是否允许发送Cookie。默认情况下,Cookie不包括在CORS请求之中。设为true,即表示服务器明确许可,Cookie可以包含在请求中,一起发给服务器。这个值也只能设为true,如果服务器不要浏览器发送Cookie,删除该字段即可。

 

转载于:https://www.cnblogs.com/zhidong123/p/7846466.html

你可能感兴趣的文章
Python 3.5 之路 day1
查看>>
selenium使用chrome抓取自动消失弹框的方法
查看>>
实现strStr()---简单
查看>>
只有PD号的调起
查看>>
返回一个整数数组中最大子数组的和
查看>>
leetcode(二)
查看>>
利用css实现居中的方法
查看>>
Spring + Hibernate 框架
查看>>
添加浏览器的用户样式表
查看>>
LigerUI学习笔记之布局篇 layout
查看>>
LeetCode题解(二)
查看>>
Mybatis通用Mapper
查看>>
文件磁盘命令(就该这么学6章内容)
查看>>
2016-207-19 随笔
查看>>
java的double类型如何精确到一位小数?
查看>>
看看国外的javascript题目,你能全部做对吗?
查看>>
ffmpeg 如何选择具有相同AVCodecID的编解码器 (AVCodec)
查看>>
真正解决 Windows 中 Chromium “缺少 Google API 密钥” 的问题
查看>>
Spring 之 AOP
查看>>
软件项目管理|期末复习(二)
查看>>