因此,我在VPS上运行多个网页,并利用Apache的虚拟主机来确保前往我网站的任何人都被发送到正确的网站。不幸的是,在设置了Jenkins实例后,我注意到的一点是,我可以转到这些域中的任何域,这些域指向位于不同虚拟主机上的VPS,然后将:8080附加到这些域上,以到达Jenkins服务器。我想找到一种方法来防止这种情况,只允许我通过ip:port访问Jenkins服务器。任何帮助深表感谢!
另外一个问题是,有什么方法可以让我也放弃尝试连接到ip:80的尝试吗?谢谢。
我可以进入这些域中的任何一个域,并将
:8080
它们附加到Jenkins服务器上。daccess-ods.un.org daccess-ods.un.org 我想找到一种方法来防止这种情况,只允许我通过来访问Jenkins服务器ip:port
。
注释中提到的第一步是阻止公众访问your_ip:8080
(詹金斯仍然可以在此端口上内部运行)。如何执行此操作可能取决于您的VPS(尽管iptables或防火墙接口可能是一个不错的起点)。
第二步是使端口的“默认” Apache虚拟主机:XX
成为反向代理(使用Apache mod_proxy模块),并将代理目标设置为对在port上运行的Jenkins的(本地)引用:8080
。该反向代理是允许访问Jenkins的东西,即使它被公开阻止也是如此。您可能会对Jenkins官方Wiki笔记中有关在Apache后面运行Jenkins的内容特别感兴趣。
笔记
您希望您的反向代理成为给定端口的“默认”主机的原因是,对于Apache和基于名称的虚拟主机,:XX
当IP为0时,将返回此“默认”主机(通常是具有port的第一个虚拟主机)。要求。
反向代理的端口由虚拟主机条目定义。但是,如果Apache和Jenkins在同一台服务器上运行,则此端口不能与Jenkins在其上运行的端口相同(例如:8080
)。
不要忘记在Apache配置中Listen
为port添加正确的指令:XX
。
如果使用端口:443
(SSL),则该端口的证书应包括IP作为有效名称。否则,您可能会收到证书警告。
需要明确的是,port:XX
只是一个示例/占位符,表示您选择的任何端口。
有什么方法可以让我也放弃尝试连接的尝试
ip:80
吗?
仅Listen
在以外的端口上具有Apache :80
。但是,这将中断:80
对您站点的所有常规端口HTTP访问(即,如果用户未明确输入https://
浏览器或使用明确https://
链接访问,则他们将无法连接)。
作为一种折衷,您可以使用与上述相同的技术(在port上使用“默认”主机:80
)将请求(而不是代理)重定向(而不是代理)到您的主站点或其他地方(例如https://www.google.com
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句