Nginx跨域配置

转载自https://blog.csdn.net/qq_38011415/article/details/107095403

随着越来越多的项目走向了前后端分离,前端服务,需要访问到不同的后端地址,经常遇到跨域问题。本文主要介绍使用Nginx解决跨域问题。

1.什么是跨域

由于浏览器的同源策略,用来限制从一个源加载的文档或脚本与来自另一个源的资源进行交互。那怎样判断是否是同源呢?如果协议,端口(如果指定了)和主机对于两个页面是相同的,则两个页面具有相同的源,也就是同源。也就是说,要同时满足以下3个条件,才能叫同源:

协议相同

端口相同

主机相同

2.常见跨域情况

网络协议不同,如http协议访问https协议 ;

端口不同,如80端口访问8080端口 ;

域名不同,如www.test1.com访问www.test2.com ;

子域名不同,如abc.test1.com访问def.test1.com ;

3.跨域问题实例

这里通过子域名不同方式,设计一个跨域访问的示例

3.1环境准备

一台服务器(搭建好Nginx环境);

二级域名2个

test1.xqiangme.top

test2.xqiangme.top

3.2新建2个index.html

文件1, 示例目录:/home/nginx/static_html/index_test1.html


文件2, 示例目录:/home/nginx/static_html/index_test2.html


3.3Nginx配置

配置目录示例:/home/nginx/conf/nginx_test1_and_test2.conf


3.4启动Nginx


若环境变量已经配置好,可直接使用./nginx 无需切换到安装目录下启动

3.5访问测试

test1子域名

test2子域名示例


4.解决跨域问题

一般Nginx解决跨域问题有2种方式,一般用第一种,接下来也是主讲第一种。

通过配置 header方式解决跨域 ;

通过反向代理 ;

修改nginx server 配置,添加如下内容


添加完成以上配置,重启Nginx就会发现,可以正常访问了

PS :若考虑到安全性,也可以指定访问来源请求的域,示例



5.附录

5.1示例中Nginx完整配置



©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 常见跨域解决方案以及Ocelot 跨域配置 Intro 我们在使用前后端分离的模式进行开发的时候,如果前端项目和a...
    天天向上卡索阅读 5,268评论 0 5
  • 什么是跨域 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实...
    HeroXin阅读 4,304评论 0 4
  • 什么是跨域 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实...
    他方l阅读 4,716评论 0 2
  • 什么是跨域 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实...
    Yaoxue9阅读 5,133评论 0 6
  • 什么是跨域? 跨域是指a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,或是a页面为ip地址,...
    没事儿啊阅读 5,102评论 0 5

友情链接更多精彩内容