将连接通过domain:port重定向到nginx中的子域

d4so4syb  于 2023-04-29  发布在  Nginx
关注(0)|答案(1)|浏览(143)

我在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配置?
谢谢你的建议。

dgtucam1

dgtucam11#

如果Nginx和你的应用程序都在Docker中运行,那么你可以把两个容器放在同一个Docker网络中,只发布Nginx容器的HTTPS端口。Nginx将能够通过端口3030连接到应用程序,即使当两个容器在同一网络上时它没有发布。Docker文档
docker compose示例:

services:
  app:
    build: .
    networks:
      - internal_network

  nginx:
    image: nginx
    ports:
      - "443:443"
    networks:
      - internal_network

networks:
  internal_network:

如果Nginx没有在Docker中运行,那么可以尝试使用Docker主机防火墙将Nginx IP地址到容器https://docs.docker.com/network/iptables/的流量加入白名单
我认为第一个选择更好

相关问题