我有一个用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
所以我在映射端口的时候,通过改变来解决这个问题。
From:
ports:
- "3000:3000"
To:
ports:
- "127.0.0.1:3000:3000"
现在它只在应用运行的VPS的本地主机上可用,不可能调用 https:/myserverip.com:3000api。.