IIS反向代理解决Web前端跨域

时间:2024-04-09 16:37:47

1. IIS反向代理

1.1 IIS7反向代理解决跨域问题

IIS的版本必须是IIS7及其以上,否则没有反向代理功能;按照以下步骤来配置IIS,以实现反向代理;

1.2 配置步骤

1. 下载安装ARR(Application Request Routing),http://www.iis.net/downloads/microsoft/application-request-routing

 IIS反向代理解决Web前端跨域

2. 如上图所示,点击红框选项;

 IIS反向代理解决Web前端跨域

3. 如上图所示,点击红框选项

 IIS反向代理解决Web前端跨域

4. 如上图所示,选中复选框;

 IIS反向代理解决Web前端跨域

5. 选择URL重写

 IIS反向代理解决Web前端跨域

6. 添加规则

 IIS反向代理解决Web前端跨域

7. 创建一个空白规则

 IIS反向代理解决Web前端跨域

8. "匹配URL"中设置模式,"^nginx/(.*)"意思是将捕获匹配的URL,不匹配的URL不会进入这个规则中

 IIS反向代理解决Web前端跨域

9. 添加一个条件

 IIS反向代理解决Web前端跨域

10. 添加的条件输入为"{HTTP_HOST}",意思是请求的主机名;模式格式为:“^绑定的域名$”,后面会将这个绑定的域名按照后面的规则操作;如果网站主机端口号不是默认的80端口,则需要在后面添加上端口号,如"^localhost:8080$"

 IIS反向代理解决Web前端跨域

11. 后面跟上{R:1}”意思是把请求的域名后面的参数也带过来;这就是我们真正要访问的地址,这里用来替换上一步中格式绑定的域名;

 IIS反向代理解决Web前端跨域

12. 点击"应用"应用该规则

 IIS反向代理解决Web前端跨域 

13. 点击重新启动,使配置信息生效,此后就可以通过该IIS反向代理到域外的网址;

 

1.3 示例

这里提供一段示例截图,来解释如何使用这个反向代理的代理服务器

 IIS反向代理解决Web前端跨域

访问的地址根路径必须是与"匹配URL"中的"模式"匹配,如我们这个说明中配置的是"^nginx/(.*)",因此在访问域外地址的时候地址必须是"/nginx/api/wec/GetDeviceStatusList"(这里不包括网址前的协议,域名和端口)

 

2. Nginx反向代理

2.1 nginx反向代理解决跨域问题

本文档中使用的版本是nginx-1.13.8nginx在windows中的路径中不能有中文路径名,路径名中不能有空格;

 IIS反向代理解决Web前端跨域

本文档的nginx的"工作目录"就是上图所示目录中

2.2 配置步骤

 IIS反向代理解决Web前端跨域

1. 打开控制台窗口,并切换到工作目录,执行"nginx -c ./conf/nginx.conf"后,就如上图上图所示,阻塞到这里,就说明启动成功了;

 IIS反向代理解决Web前端跨域

2. 在浏览器中输入"localhost",如果出现上图所示页面,说明nginx已经在正常工作了;

 IIS反向代理解决Web前端跨域

3. 打开配置文件"./conf/nginx.conf",如上图所示

 IIS反向代理解决Web前端跨域

4. 在配置文件中添加上图所示相关配置,就可以成功进行反向代理了;

2.3 nginx使用注意事项

1. nginx正在运行,配置文件被修改了,只需要执行命令"nginx -s reload"即可让nginx重新加载配置信息了;

2. nginx必须通过命令"nginx -s stop"或者"nginx -s quit"结束,否则进程不会退出;