在 Google Cloud 上,Domain/IP 不会加载,但 domain/IP 和 port:8080 会加载
On Google Cloud, Domain/IP doeson't load but domain/IP with port:8080 does
我有一个 Django 应用程序在 Google 云平台上的 Docker 容器上损坏。
它可以像 domain/IP:8080
一样通过 :port 访问,但不能在 domain/IP
上访问
可能是什么问题?
- nmap 和 netstat 输出列在图像下方。
以下是防火墙规则:
nmap
Host is up (0.0013s latency).
Not shown: 995 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp closed http
443/tcp closed https
3389/tcp closed ms-wbt-server
8080/tcp open http-proxy
网络统计-lnp | grep 80
tcp6 0 0 :::8080 :::* LISTEN -
udp6 0 0 fe80::70cf:23ff:fe8:123 :::* -
udp6 0 0 fe80::8830:1bff:fe4:123 :::* -
udp6 0 0 fe80::42:13ff:fe38::123 :::* -
udp6 0 0 fe80::4001:aff:fe96:123 :::* -
unix 2 [ ACC ] STREAM LISTENING 22590 - @/containerd-shim/moby/60315b1bbaa927bf4f0cc5cffd6d4203e40c/shim.sock@
unix 2 [ ACC ] STREAM LISTENING 18084 - /run/containerd/containerd.sock
根据您的 nmap
输出,您的 VM 似乎实际上并未在端口 80 或 443 上侦听:
80/tcp closed http
443/tcp closed https
Web 浏览器默认使用 http 端口 80(或 443 用于 https),这就是 URL 栏中那些 IP 省略端口的原因。
您需要将您的服务器配置为侦听端口 80。看起来确实因为您的防火墙在端口 8080 上传递流量,所以实例上有 http-server 标记,所以端口 80 被允许通过您的防火墙.
由于是在docker容器中,想必你可以配置端口转发转发到主机的80端口而不是8080端口,比如在启动容器时通过-p 80:8080
。
我有一个 Django 应用程序在 Google 云平台上的 Docker 容器上损坏。
它可以像 domain/IP:8080
一样通过 :port 访问,但不能在 domain/IP
可能是什么问题?
- nmap 和 netstat 输出列在图像下方。
以下是防火墙规则:
nmap
Host is up (0.0013s latency).
Not shown: 995 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp closed http
443/tcp closed https
3389/tcp closed ms-wbt-server
8080/tcp open http-proxy
网络统计-lnp | grep 80
tcp6 0 0 :::8080 :::* LISTEN -
udp6 0 0 fe80::70cf:23ff:fe8:123 :::* -
udp6 0 0 fe80::8830:1bff:fe4:123 :::* -
udp6 0 0 fe80::42:13ff:fe38::123 :::* -
udp6 0 0 fe80::4001:aff:fe96:123 :::* -
unix 2 [ ACC ] STREAM LISTENING 22590 - @/containerd-shim/moby/60315b1bbaa927bf4f0cc5cffd6d4203e40c/shim.sock@
unix 2 [ ACC ] STREAM LISTENING 18084 - /run/containerd/containerd.sock
根据您的 nmap
输出,您的 VM 似乎实际上并未在端口 80 或 443 上侦听:
80/tcp closed http
443/tcp closed https
Web 浏览器默认使用 http 端口 80(或 443 用于 https),这就是 URL 栏中那些 IP 省略端口的原因。
您需要将您的服务器配置为侦听端口 80。看起来确实因为您的防火墙在端口 8080 上传递流量,所以实例上有 http-server 标记,所以端口 80 被允许通过您的防火墙.
由于是在docker容器中,想必你可以配置端口转发转发到主机的80端口而不是8080端口,比如在启动容器时通过-p 80:8080
。