我在Docker环境中托管应用程序。此应用程序在端口3030下侦听我的IP地址或域。连接工作正常。没有SSL。
我在nginx中创建了一个子域,为应用程序提供SSL证书。这个子域指向我的IP地址和端口。通过子域www. example的连接 www.example.com 通过SSL工作正常。
但是现在我想阻止通过IP/域:3030访问该应用程序。最好将这类请求重定向到子域以确保SSL。
有什么可能的选项可以阻止通过domain:port访问以始终确保SSL?
我试图在ufw中封锁此端口。但是应用程序无论如何都是可访问的。我将我的应用程序配置为只监听localhost,但它可以通过domain:port访问,而不需要SSL。因为一些Docker配置?
谢谢你的建议。
1条答案
按热度按时间dgtucam11#
如果Nginx和你的应用程序都在Docker中运行,那么你可以把两个容器放在同一个Docker网络中,只发布Nginx容器的HTTPS端口。Nginx将能够通过端口3030连接到应用程序,即使当两个容器在同一网络上时它没有发布。Docker文档
docker compose示例:
如果Nginx没有在Docker中运行,那么可以尝试使用Docker主机防火墙将Nginx IP地址到容器https://docs.docker.com/network/iptables/的流量加入白名单
我认为第一个选择更好