Centos docker代理端口 - 防火墙。

问题描述 投票:0回答:2

我有一个用docker-compose运行的项目。这个项目的前端在4200端口,后端在3000端口,数据库在5342端口。当我用docker-compose运行它时,所有这些端口都是公开的。因此,我可以(每个人都可以)访问后端 https:/myserver:3000api。.

如何将docker-proxy端口禁用为公共端口?我的解决方案是,我有nginx,使用myapp.myserver.com并重定向到本地前端端口4200(nginx.conf)--前端使用后端端口3000和后端5432--但这些端口不应该是公开的。公共端口应该是80、443、22(ssh)等。

参见我的netstat。

tcp        0      0 0.0.0.0:80              0.0.0.0:*               NASLOUCHÁ  11972/nginx: master 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               NASLOUCHÁ  848/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               NASLOUCHÁ  1149/master         
tcp        0      0 0.0.0.0:443             0.0.0.0:*               NASLOUCHÁ  11972/nginx: master 
tcp6       0      0 :::9000                 :::*                    NASLOUCHÁ  16995/docker-proxy  
tcp6       0      0 :::5000                 :::*                    NASLOUCHÁ  14069/docker-proxy  
tcp6       0      0 :::5001                 :::*                    NASLOUCHÁ  11557/docker-proxy  
tcp6       0      0 :::8080                 :::*                    NASLOUCHÁ  11402/docker-proxy  
tcp6       0      0 :::80                   :::*                    NASLOUCHÁ  11972/nginx: master 
tcp6       0      0 :::22                   :::*                    NASLOUCHÁ  848/sshd            
tcp6       0      0 ::1:25                  :::*                    NASLOUCHÁ  1149/master         
tcp6       0      0 :::443                  :::*                    NASLOUCHÁ  11972/nginx: master 
tcp6       0      0 :::8000                 :::*                    NASLOUCHÁ  17006/docker-proxy
docker proxy docker-compose centos firewall
2个回答
0
投票

你可以使用nginx.conf来重定向到后端端口。比如说 api.myserver.com 将流量路由到后端端口3000和 db.myserver.com 会将流量路由到3000端口。所有这些集装箱应该在同一个 docker网络 以便于进行路由选择。

Nginx可以控制哪些端口暴露在外界。

这样一来,你的nginx就会将服务器作为 入口代理. 所有的连接都是通过nginx路由的,世界其他地方对内部使用的端口是无视的。这个想法被用来向世界开放kubernetes背后的服务。


0
投票

所以我在映射端口的时候,通过改变来解决这个问题。

From:

ports:
      - "3000:3000"

To:

ports:
      - "127.0.0.1:3000:3000"

现在它只在应用运行的VPS的本地主机上可用,不可能调用 https:/myserverip.com:3000api。.

© www.soinside.com 2019 - 2024. All rights reserved.