首页 新闻 会员 周边

求教Nginx反向代理解决前端跨域的解决方案

0
悬赏园豆:100 [已解决问题] 解决于 2024-01-19 20:17

公司现在的地图模块要换成其它平台,但是在访问的时候出现了跨域问题,由于用的是别人的地图,所以只能前端来解决跨域问题,目前只找到了Nginx反向代理一个来使用与前端的解决方案,由于本人是编程小白,也没接触过完全的前端跨域,做了三天也没有配置成功,学艺不精,求博客的朋友解答

问题补充:

本项目使用得是bootstrop框架和原生js编写,主要问题是Nginx在监听端口得时候,发现端口在被IIS使用,有没有什么办法使Nginx和IIS公用一个端口,现在是冲突得状态

C#HelloWord!!!的主页 C#HelloWord!!! | 初学一级 | 园豆:19
提问于:2023-05-11 14:12
< >
分享
最佳答案
0

把iis站点换一个端口 比如65506
server {
listen 65507;
server_name location;
location / {
proxy_pass http://127.0.0.1:65506/;
}
location /map {
proxy_pass http://地图地址;
}
}
通过访问http://localhost:65507 就可以访问iis站点 访问http://localhost:65507/map就可以访问地图
这样就把两个地址代理到同域下了

收获园豆:100
2316219 | 菜鸟二级 |园豆:304 | 2023-05-11 17:49

我不明白你的意思,我都程序挂在IIS上面,程序得端口就是65507,如果我换了IIS得端口得话,我得程序不是一起更换了吗,那不是还是监听不到程序

C#HelloWord!!! | 园豆:19 (初学一级) | 2023-05-11 19:14

是这样,我大概懂了,问题在于我不能控制程序访问得端口,因为在我的认知里程序的端口和IIS的端口一直都是一致的,所以我不明白如何在IIS端口改变之后程序还能保持原有的端口

C#HelloWord!!! | 园豆:19 (初学一级) | 2023-05-11 19:21

@C#HelloWord!!!:
1.反向代理就是将一个地址转发到另一个地址,这里就是将访问65507的请求转发到65506,访问65507就相当于访问65506了,端口可以随意更换的,如果iis端口没法换的话就换一个nginx监听的端口
2./map的意思是当访问/map的时候将请求转发到地图地址
3.你的前端程序本来是直接访问iis,现在加了nginx,前端程序就不再访问iis了,直接访问nginx
不知道你的前端是用什么写的,是否是前后端分离,需要看情况处理

2316219 | 园豆:304 (菜鸟二级) | 2023-05-12 09:00

@2316219: 谢谢大佬,我明白了

C#HelloWord!!! | 园豆:19 (初学一级) | 2023-05-12 11:32
其他回答(1)
0

Nginx配置文件的server节点里如下配置:
location /api {
proxy_pass http://192.168.3.108:8081/api;
}
配置完以后重启Nginx,代码里用 /api 代理之前的请求地址
http://192.168.3.108:8081/api/login/get 改成 /api/login/get

顾星河 | 园豆:7173 (大侠五级) | 2023-05-11 14:43

我的前端页面在IIS使用了65507端口但是我不知道怎么同时使用Nginx去监听这个65507端口,他们会产生冲突

支持(0) 反对(0) C#HelloWord!!! | 园豆:19 (初学一级) | 2023-05-11 16:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册