我不太明白 localhost 与分配给每台机器的私有 IP 有何关系。
如果我在 localhost:8080 上运行服务器,我可以在 192.168.xx:8080 上运行其他服务器吗?
更具体地说,如果我在 localhost:8080 上运行 python 女服务员服务器并使用 NGINX 进行反向代理,我可以让 NGINX 监听端口 8080 吗?
答案1
如果我在 localhost:8080 上运行服务器,我可以在 192.168.xx:8080 上运行其他服务器吗?
是的,只要它们绑定到不同的本地地址(即,根据地址:端口组合来跟踪套接字),同一个端口上可以有不同的监听套接字。
(但要避免将特定的address:port
监听器与“任何地址”0.0.0.0:port
或[::]:port
监听器混合。通常这也是允许的,但有更严格的要求,例如,我认为如果两个程序有不同的 UID,Linux 就不允许这样做。)
我不太明白 localhost 与分配给每台机器的私有 IP 有何关系。
不会。名称“localhost”专门解析为地址 127.0.0.1 和 [::1],没有其他内容。它从不使用您的实际 LAN 地址。
答案2
localhost
转化为127.0.0.1
,所以localhost:8080
和127.0.0.1:8080
是同一回事。
192.168.x.x
是不同的 IP 地址,因此可以重复使用相同的端口。您可以在127.0.0.1:8080
和 上运行不同的服务器192.168.0.1:8080
,如果您有更多 IP 地址,甚至可以继续使用,例如:192.168.0.2:8080
和192.168.0.3:8080