关于 WSL 中 1Panel 的 OpenResty 反向代理问题

我在局域网的 WSL 上运行了一些服务,希望可以通过域名来访问。(在本机修改 hosts)

我的 WSL 是 mirror 模式,和主机是使用同一个 ip 的,之前用的是 nginx-proxy-manager,一直正常使用,但是 wsl 非正常关闭的时候这里面的数据有时候会消失,于是就考虑用 1Panel 的 OpenResty。

但是现在问题是 OpenResty 的反向代理一直不生效,域名无法访问,查端口也查不到 80 和 443 端口。但是这两个端口应该确实是被占用的,因为此时再启动nginx-proxy-manager的时候,会提示端口占用。

这是我的设置,之前在npm里面是设置 chat.local 到 host.docker.internal:3000

有没有大佬可以分析一下这是怎么回事?或者还有什么办法可以排查一下吗

2 个赞

在主机里用命令查下端口啊。

域名在wsl 的ping结果是啥,这个反向代理的地址在wsl能访问到吗

1 个赞

可以的,之前用nginx-proxy-manager 好好的,ping 也没问题

主机也查不到这个端口,主机连 3000 端口也查不到,但是我用 ip:3000 是可以访问的,如果把nginx-proxy-manager打开,主机名:端口也能打开

我在本地测试了半天也不行,这个虚拟域名在wsl可以用,到了win就不行

我怀疑是跟 1panel 的 openrestry 是 docker 启动的问题

在 WSL 里面可以用是什么意思?是类似修改 wsl 的 host,然后在 wsl 里面 curl 吗?
我看了一下 1panel 的 Openresty 网络模式是host,跟这个有关系吗

就是wsl里面可以正常访问 chat.local

属实把我弄晕了,搞了好久还是不行,那还是放弃这条路吧,反正我的需求也简单,配置一下nginx.conf算了

总之十分感谢你的帮助

对了,你是怎么在 wsl 里面访问 chat.local 的啊

curl 测试的,我刚在 powershell 里面curl wsl 也是可以,但是浏览器就不行

1 个赞

明显是80端口被占用了

哪里看出来的?如果被占用的话,会提示无法部署

netstat -tunlp|grep 80

什么都没有

那就是OpenResty的端口没有映射到主机端口

我在 wsl 和 windows 上都查不到这个端口。但是此时想要绑定80的时候是提示被占用的 :smiling_face_with_tear:
wsl 里面其他容器和服务都能正常映射。
可能还是跟WSL有关系