前端解决跨域问题的终极武器——Nginx反向代理

提到代理,分为:正向代理和反向代理。

正向代理:就是你访问不了Google,但是国外有个VPN可以访问Google,你访问VPN后叫它访问Google,然后把数据传给你。

正向代理隐藏了真实的客户端。

反向代理:你访问baidu.com,后面有成千上万台服务器,具体访问哪一台,你不知道,只需要知道反向代理器是谁,让它帮你去请求真实的数据服务器,然后把数据返回给你。

反向代理隐藏了真实的服务端。

Nginx是一个web服务器,可以做反向代理,负载均衡器,HTTP缓存。前端开发一般用Nginx解决跨域问题:

举个栗子:本地前端页面是是http://localhost:8080,而请求的服务器是http://192.168.10.1:8080

Nginx或者Apache上面的配置代理:将服务器的ip映射成别的相对路径。

http {
    server {
       listen 80;

       location /{
            proxy_pass http://localhost:8080;
       }

       location /api{
            proxy_pass http://192.168.10.1:8080;
       }
    }
}

Nginx运行在localhost:8080 上,将服务器ip:http://192.168.10.1:8080映射成了api,当调用api路径时,就不像是在跨域了而是在访问本地(http://localhost:8080) ,实际上是在访问服务器(http://192.168.10.1:8080)。

Nginx解决跨域问题通过Nginx反向代理将对真实服务器的请求转移到本机服务器来避免浏览器的"同源策略限制"。

前端遇到跨域问题,要么让后台通过配置Access-Control-Allow-Origin参数来解决,要么自己本地起个Nginx反向代理进行跨域设置。

 【完】

 学会素读,学会素听,交流的前提是必须知道别人完整的东西,否则学习到的东西很少了。

原文地址:https://www.cnblogs.com/tangjiao/p/9987506.html