nginx反向代理
思路是:利用nginx把跨域反向代理为不跨域,支持各种请求方式
缺点:需要在nginx进行额外配置,语义不清晰
示例
域名A:manage.haha.com;A的实际IP127.0.0.1;端口9001
域名B:consumer.haha.com/api;B的实际IP127.0.0.1;端口10010
A域名Ajax请求B域名数据,修改nginx配置文件如下:
server { #监听端口 listen 80; #域名 server_name manage.haha.com; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #所有请求路径都代理到 location / { proxy_pass http://127.0.0.1:9001; proxy_connect_timeout 600; proxy_read_timeout 600; } location /api { proxy_pass http://127.0.0.1:10010; proxy_connect_timeout 600; proxy_read_timeout 600; } }
总结
实际上Nginx实现跨域是使用同一域名,通过分析三级域名将请求发送到相应IP和端口