创建一个指向不同于 80 端口的 IP 的域名
Posted
技术标签:
【中文标题】创建一个指向不同于 80 端口的 IP 的域名【英文标题】:create a domain name pointing to an IP of port different than 80 【发布时间】:2014-11-16 06:15:43 【问题描述】:我想用一个域名指向一个网页上的本地服务器的IP地址。但是,问题在于该页面链接到在端口 8088 上设置的 IP 地址,而不是 80,因为后者已被另一个网页使用。域名公司告诉我他们不能这样做,因为该域名只能指向在端口 80 上设置的 IP 地址。所以现在我陷入了僵局。我有什么替代方案,如何使域指向 IP:8088?
谢谢
【问题讨论】:
您控制处理端口 80 的 Web 服务器吗?是什么软件? 是的,我可以控制它。这是另一个网页,它设置在相同的 IP 地址上,但在端口 80 上。但是,正如我所说,我想使用另一个网页,它设置在相同的 IP 地址上,但使用端口 8088 【参考方案1】:与您交谈的域名公司可能在解释域名如何运作方面做得很差。域名不涉及特定端口。它们只是指 IP 地址。客户端可以查找主机名以获取客户端应连接的 IP 地址,但客户端必须在没有 DNS 帮助的情况下找出端口。 80 端口只是 HTTP 服务的默认端口。
如果您愿意,当然可以在端口 8088 上运行 Web 服务器。端口号必须出现在 URL 中,例如http://somehost.example.com:8080/some/page
。客户端会解析这个并知道连接到端口 8080 而不是默认端口 80。
如果您不希望 URL 包含端口号,则请求将转到默认端口 80,您别无选择,只能让运行在端口 80 上的 Web 服务器处理这些请求。 HTTP/1.1 请求包括客户端想要联系的主机名,现代 Web 服务器程序通常能够根据请求中的主机名提供完全不同的内容集。有几种方法可以满足您的需要:
只需将 Web 服务器配置为端口 80 即可处理两个站点。这取决于您使用的网络服务器软件。例如,Apache 将这些称为“虚拟主机”和here is a set of examples。这是一个典型的解决方案,有些人以这种方式在同一台服务器上运行数百个站点。
按计划运行两个 Web 服务器。将端口 80 的服务器设置为第二个网站的 reverse proxy。服务器将继续为其现在处理的站点提供内容。当它收到对第二个站点的请求时,会将请求中继到运行在端口 8088 上的服务器,并将服务器的响应中继回客户端。
将端口 80 的现有服务器移动到其他端口。在端口 80 上运行一个纯反向代理服务器,将两个网站的请求中继到各自的 Web 服务器。
您最好向https://webmasters.stackexchange.com/ 或https://serverfault.com/ 提出更多问题。
【讨论】:
即使是从 2014 年开始的艰难,它也帮助我清除了很多东西,谢谢! 我可以使用第二个域名作为ServerName
,例如在服务器配置中使用www.example.com
和other.example.com
。
如果他们允许 ip:port 到 A 域名就好了。遗憾的是,根据我的理解,今天是不可能的。【参考方案2】:
您可以使用代理将给定域重新路由到 IP:PORT。为此,您可以启动一个 nginx 服务器并将其配置为您的反向代理,或者使用这个项目,它完全符合您的要求,几乎没有配置 https://github.com/cristianoliveira/ergo
【讨论】:
【参考方案3】:如果您在端口 80 上运行 Apache,这是最常见的情况,那么解决此问题的最简单方法是设置使用 ProxyPass 的 VirtualHost。
<VirtualHost sub.domain.com:80>
ProxyPass / https://ip-or-domain.com:8088/
</VirtualHost>
【讨论】:
【参考方案4】:后退和平底船。 在原始服务器端口 80 上放置一个新的第一页,允许冲浪者使用端口 80 上的原始 Web 服务器或端口上的新 Web 服务器???? 65536(开玩笑,随便选一个) 使其成为具有两个或多个选项的简单重定向页面。
【讨论】:
以上是关于创建一个指向不同于 80 端口的 IP 的域名的主要内容,如果未能解决你的问题,请参考以下文章
iis服务器上开了两个端口80跟8080,如何设置两个域名分别指向这两个端口