由于基础设施的限制,为全世界提供 HTTP 服务的建议解决方案之一是通过端口 8080 和 8443 提供它。
我担心的是某些用户可能无法访问这些服务,因为它们没有在标准端口上运行,并且内容可能会被(例如)作为公司网络策略的一部分进行过滤。
那么......来自互联网的用户可能无法访问这些服务的可能性有多大?
由于基础设施的限制,为全世界提供 HTTP 服务的建议解决方案之一是通过端口 8080 和 8443 提供它。
我担心的是某些用户可能无法访问这些服务,因为它们没有在标准端口上运行,并且内容可能会被(例如)作为公司网络策略的一部分进行过滤。
那么......来自互联网的用户可能无法访问这些服务的可能性有多大?
公司网络通常会默认采用如下规则:
以这种方式配置比明确拒绝 65,535 个可用端口中的 99% 更容易。
话虽如此,我接管了一个面向客户端的门户,由于网络限制,该门户使用非标准端口;我不知道 NAT 的详细信息。无论如何,这使我们大约 50% 的用户/访问者无法访问站点,并且每当他们打电话给我们报告这个问题时,我们都必须与他们不存在的 IT 协调以尝试实施允许规则。
我不知道您的基础设施限制的详细信息,但我想在 80/443 上运行其他东西
如果是这种情况,那么您唯一的选择可能是使用内部代理或将交换机升级到具有更高级 NAT 功能的设备,从而可以适当地路由请求。
TL;博士
不要将非标准端口用于已经具有标准端口的面向公众的服务。
这些很可能会被阻止,尤其是在公司网络或公共 wifi 上。在普通的家庭互联网连接上不太可能。
它肯定会在我的工作网络上被阻止。
此外,人们必须记住输入端口号才能访问您的站点,这是您不想处理的额外麻烦。对于内部或私人站点来说,这不是一个大问题,但如果这是针对普通公众的,那么使用标准端口将会取得更大的成功。
让您的浏览器点击http://example.com:8080/index.html并不难,但是当您谈论阻止非标准端口的公司政策时,这似乎非常困难。
如果您设置了某种负载平衡,您仍然可以将应用程序设置为在标准端口上运行,并将负载平衡器端口转发到内部的奇数端口。即使您没有负载平衡,我相信您也可以找到一种方法将端口转发到非标准的内部端口。
在内部,用户可以访问一个奇怪的端口(如果不是您的公司阻止策略的一部分),在外部他们会看到http://example.com。
有很多方法可以做到这一点,您必须根据遇到的障碍类型获得一些创意。它总是一个挑战!