nginx消除跨域难点

2019-12-31 06:17 来源:未知

做Web开发经常需要面对跨域问题,跨域问题的根源是浏览器安全中的同源策略,比如说,对于

什么是nginx?

1.

Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

在浏览器中,

跨域问题原因:

浏览器访问时会创建请求头,请求头中存在ui服务器域名,当它去访问一个跨域服务器时仍然带着这个ui服务器域名,这时跨域服务器会拦截这个带着ui服务器域名的访问,浏览器就会报不允许跨域访问的错。

第一种方案:(适用于跨域服务器你不能动的情况)

ui服务器不用nginx代理,只用Nginx代理跨域服务器,代理服务器实现允许跨域请求后,浏览器访问UI服务器,下载UI到浏览器,浏览器把要发给跨域服务器的请求发给代理服务器(要发给UI服务器的请求仍然发给UI服务器),代理服务器再去跨域服务器请求(跨域是浏览器触发的,代理服务器访问跨域服务器就不会有跨域问题),获取到跨域服务器的响应后再把该响应返给浏览器,这样就不需要跨域服务器做任何改变就可以实现跨域访问。

第二种方案:

把ui所在的服务器和跨域服务器都用nginx代理转发,浏览器访问nginx,nginx到ui服务获取ui,再把ui下载到浏览器,浏览器发起ui中的URL,该URL为Nginx封装后的跨域服务器的URL或ui服务器的URL,该URL到达Nginx之后,会被转发到跨域服务器或ui服务器,请求处理完毕后,会通过Nginx中转返回给浏览器。暴露出来的或者浏览器所发起的url都是nginx的url,nginx去跨域服务器和ui服务器获取响应,返给浏览器,这样就没有跨域问题了。

什么是反向代理?

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

可参考下图:

图片 1

简单来说:

正向代理:是代表客户端去请求接受响应

反向代理:是代表服务端来接受请求去响应

第一次写,写的不好,请多指教哈。

这是我作为前端对nginx解决跨域问题的理解,如果写的不对的地方,请指教,感激不尽!!!

TAG标签:
版权声明:本文由金沙澳门唯一官网发布于金沙澳门登陆网站,转载请注明出处:nginx消除跨域难点