nginx配置允许指定域名下所有二级域名跨域请求
2017-11-16 21:07
1081 查看
核心原理是根据请求域名匹配是否是某域名的二级域名判断是否添加允许跨越头。
匹配文件类型: eot|ttf|woff|svg|otf
为这几种文件类型设置跨域访问
匹配所有changyou.com:8014端口下面的二级域名
由于nginx无法使用or语法,所以判断 匹配所有cy.com:8014端口下面的二级域名
用变量赋值的方法实现了
如果默认是80端口,就把:8014去掉就行。
其实核心代码就是:
(1)Access-Control-Allow-Origin
该字段是必须的。它的值要么是请求时
(2)Access-Control-Request-Method
该字段是必须的,用来列出浏览器的CORS请求会用到哪些HTTP方法
(3)Access-Control-Allow-Credentials
该字段可选。它的值是一个布尔值,表示是否允许发送Cookie。默认情况下,Cookie不包括在CORS请求之中。设为
#畅游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,删除该字段即可。
相关文章推荐
- nginx 指定多个域名跨域请求配置
- nginx允许所有二级域名跨域请求
- AJAX跨域轻松配置nginx允许多个域名跨域访问
- nginx 域名跳转 所有域名转向 指定二级域名
- nginx配置 解决ajax请求跨域问题
- Nginx,Apache只允许域名访问详细配置
- django允许跨域请求配置
- nginx配置ajax请求跨域
- Nginx配置跨域请求 Access-Control-Allow-Origin *
- Nginx配置-Ajax跨域请求方式为PUT,DELETE
- windows上 nginx 配置代理服务,配置多域名,以及最简单实现跨域配置
- 用反向代理nginx proxy_pass配置解决ie8 ajax请求被拦截问题 ie8用nginx代理实现跨域请求访问 nginx405正向代理request_uri
- nginx 反向代理配置之---可配置多域名请求
- Nginx服务器中处理AJAX跨域请求的配置方法讲解
- Chrome浏览器允许跨域请求配置
- Ngnix 配置允许多个域名跨域访问
- nginx配置允许跨域访问
- Day06 4000 Ajax中跨域请求,域名处理,forward与redirect区别,tomcat中配置虚拟主机
- Nginx允许跨域访问的配置问题
- Tomcat服务器允许所有JSON进行跨域请求(不使用JSONP)