我在家庭网络上的几台不同计算机上托管了几个不同的网站。我正在尝试配置防火墙设置,使其允许 HTTP 流量流向这两台计算机,并通过域名区分它们。这可以做到吗?如何让同一本地网络上的两个不同 HTTP 服务器在互联网上可见?
答案1
假设您有一个公共 IP 地址,您不能使用相同的端口(80)在多台服务器上托管多个 http 站点。
为了实现此功能,您需要为每个服务器使用唯一的端口,例如 80、81 和 82。这还需要为每个服务器使用唯一的 URL:
http://webserver1.com
http://webserver2.org:81
http://webserver3.net:82
在这种情况下,只需将唯一的端口转发到每个服务器,并在浏览器中输入的 URL 中替换该端口。
但是,如果所有网站都作为虚拟站点托管在同一个服务器(如 IIS 或 Apache)上,这将是可能的,它是 http/1.1 规范的一部分,并使用 HOST 参数来请求它正在寻找的站点名称。
如果这些是 HTTPS 站点,那就别想了。每个站点都必须有自己独特的公共 IP 地址。SSL 密钥交换和证书验证发生在 http 事务之前,因此 http 服务器不知道要为 webserver1.com 或 webserver2.net 提供证书