Tomcat服务器背后的nginx反向代理 – 如何阻止直接访问服务器?

这可能是一个noob问题,但我仍然在学习Web服务器和反向代理设置。 我有两台服务器在同一个networking上运行 – 一个Tomcat和另一个Nginx,我打算为类似的Tomcat服务器使用反向代理服务器。 我了解到可以用来隐藏真实Web服务器的身份,并且可以利用其他优点,例如更好的性能和负载平衡,我提出了引入反向代理服务器的想法。

我面临的问题是,tomcat服务器可以通过两个IP地址访问 – 如果我使用Nginx IP,它将redirect到Tomcat FQDN(预期),但是如果使用FQDN tomcat.domain.com进行ping,则会显示真实Tomcat服务器的IP,而不是Nginx服务器的IP。 实际上,我的Nginx服务器没有任何用途。 我在这里错过了什么?

不要将Tomcat服务器直接暴露给Internet。 将Web服务器放入DMZ (即防火墙后面),然后将Tomcat服务器放在另一个防火墙之后。 你可以使用操作系统提供的软件防火墙,或者硬件防火墙,但是你没有说你使用的是什么操作系统,所以我不能给出更多的build议。 像IPTables或Windows防火墙。 如果您在AWS中运行,则可以使用其VPC系统。

你不想从nginxredirect到Tomcat,你想使用Nginx作为反向代理 。 使用proxy_pass指令,请求进入Web服务器,Web服务器从Tomcat请求页面,获取响应,然后将其发送回Web浏览器。