1. 退回到你可以访问界面的配置并刷新网页能正常访问
刷新都能正常访问前端页面。
2. 看f12 network的接口返回具体错误是什么
3. 提供nginx完整配置
4. 在server节点加上我们给你的反向代理的配置
这是我按照你提供的8000,加的反向代理
这
5. 再看接口返回是什么
接口返回404
6. 88端口代理了gateway,那用postman调用gateway地址看看是否token接口有正确返回。以此来排查是后端部署的问题还是前端反向代理的问题
这个地址不用鉴权,我在网关已做放行了,不需要token,前端的请求地址:http://food.nyfwypt.com/dmaier-food/infodetail/getNews,它请求端口是80,而不是88,
请求http://food.nyfwypt.com:88/dmaier-food/infodetail/getNews 就有数据返回
h,wjg thttp://food.nyfwypt.com/dmaier-food/infodetail/getNewstp://food.nyfwypt.com/dmaier-food/infodetail/getNews
不需要配置devServer,只需要在nginx配置就行。至于你需要哪个端口,你就在server进行配置。如果你要80端口,就把反向代理配置到80,要8000端口,就反向代理配置到8000。
server {
listen 80;
server_name food.nyfwypt.com;
access_log /logs/nginx/dc-food.access.log main;
location / {
root /html/dc/web;
index index.html index.htm;
}
location ^~ /oauth/redirect {
rewrite ^(.*)$ /index.html break;
}
location ^~ /api {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://dcgateway;
}
}
或者
server {
listen 8000;
server_name food.nyfwypt.com;
access_log /logs/nginx/dc-food.access.log main;
location / {
root /html/dc/web;
index index.html index.htm;
}
location ^~ /oauth/redirect {
rewrite ^(.*)$ /index.html break;
}
location ^~ /api {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://dcgateway;
}
}
=============
补充回答
你不是说80被占用了么?怎么还配置80的端口,改成8000的,另外把devServer配置改回来,不要删掉。信息再提供完整点
=============
补充回答
你之前没有配置过nginx还是说没有完整部署过一套最简单的系统,看你的描述觉得很乱。你说现在不能访问,那是不是之前能访问。你把之前能访问的配置贴出来,并且改回去,然后刷新页面,看浏览器f12的network接口返回什么信息。
你改完之后只提供一个局部的配置告诉我不行,不能访问了。我们是没法帮你排查的。
已经一个下午了,你给我们提供的信息都是碎片化的,没有实际能排查的作用,希望你能好好看我们给你的回答以及排查步骤,群里怎么做也和你说了。
1. 退回到你可以访问界面的配置并刷新网页能正常访问
2. 看f12 network的接口返回具体错误是什么
3. 提供nginx完整配置
4. 在server节点加上我们给你的反向代理的配置
5. 再看接口返回是什么
6. 88端口代理了gateway,那用postman调用gateway地址看看是否token接口有正确返回。以此来排查是后端部署的问题还是前端反向代理的问题
=============
补充回答
正常情况的反向代理,是要有一个 /api 前缀的地址的,比如你 部署的前端地址是 http://food.nyfwypt.com,那么反向代理后从前端访问的地址就是 http://food.nyfwypt.com/api/dmaier-food/infodetail/getNews ,而我看你前端的地址 直接就是 http://food.nyfwypt.com/dmaier-food/infodetail/getNews,没有反向代理的痕迹。是直接调用的接口绝对路径么?如果是这样的话,那你去找找前端哪里有一个全局接口全局路径的配置,把你的88端口Gateway填进去看看是否能访问成功。
如果你们有反向代理的配置,那去接口看看那里把/api前缀给去掉了,加上,如果不是/api前缀,则到nginx配置的反向代理/api改成你们自己配置的。
反正就是一对一的关系,配置了反向代理,那代码与nginx的代理前缀都要一样,有了反向代理就是前端端口直接代理了,不需要单独配置88端口的gateway。
如果没有反向代理,是接口绝对路径调用,则到前端把绝对路径配置上,配置的地址就是你的88端口gateway地址。
扫一扫访问 Blade技术社区 移动端