我有一个端口转发问题,求大佬们协助

1 天前
 AndreasG

我现在有三个容器开着,路由器开放了三个端口, 我想能不能开放一个端口用拼接 url 方式转发到不同的内网服务下,

server {  
    listen 10086 ssl;  
    server_name abc.com;
        location / {  
        proxy_pass http://192.168.0.100:10086;
        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_set_header X-Forwarded-Proto $scheme;
        }


        location /book {  
        proxy_pass http://192.168.0.100:10010;
        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_set_header X-Forwarded-Proto $scheme;
        }
    }

类似这样配置了 nginx 之后 直接访问 abc.com:10086 端口访问全部没问题 但是转发的第二个端口

abc.com:10086/book

并不能成功转发到 192.168.0.100:10010 浏览器调试发现使用 abc.com:10086/book 发出的请求中 css js 之类的都是

abc.com:10086/static/?.css
abc.com:10086/static/?.js

而并没有到

abc.com:10086/book/static/?.css
abc.com:10086/book/static/?.js

状态都是 404 了 问了一下 gpt 说是需要找到真实的静态资源地址,这个容器的话怎么搞呢?还是说我的 nginx 需要配置其他配置项才可以呢,求大佬们帮助

1744 次点击
所在节点    NGINX
27 条回复
AndreasG
1 天前
@coolfan 多谢老哥,我最后采用了你的方法,使用了二级域名绕过这个问题
AndreasG
1 天前
@zizon 貌似有点走远了,我查了查要彻底解决貌似是要改改,不过我这项目是弄好的 docker 不好改了,不过多谢
AndreasG
1 天前
@oouz 试了试不太行,貌似不是这个原因,不过已经解决,多谢老哥协助
AndreasG
1 天前
@sagaxu 多谢老哥协助
coolloves
1 天前
proxy_redirect http://192.168.0.100:10086/ /book/;

试试呢
coolloves
1 天前
location /book {
proxy_pass http://192.168.0.100:10010;
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_set_header X-Forwarded-Proto $scheme;
proxy_redirect http://192.168.0.100:10010/ /book/;
}
lovelylain
22 小时 24 分钟前
@coolloves proxy_redirect 解决的只是 header location 跳转,网页里用了绝对路径还是会有问题的,能重新构建网页的话可以改为使用相对路径,不能的话用 sub_filter 替换运气好也能搞定,但是很麻烦

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1103834

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX