我有一个,它运行一个码头映像。docker映像运行一个特定的JAVA应用程序,它运行在端口1024上。我已经将我的域名DNS指向VM公共IP。
这是可行的,因为我可以访问mydomain.com:1024并访问我的应用程序。因为Google直接将停靠端口公开为公共端口。但是,我想通过https://example.com (端口443)访问这个应用程序。所以基本上把端口443映射到我的VM中的端口1024。
注意,我的坞映像启动了一个nginx服务。在此之前,我将java应用程序配置为在端口443上运行,然后nginx服务听取了443,Google公开了这个HTTPS端口,所以一切都很好。但出于特定的原因,我不能再为我的应用程序使用端口443了。
有什么想法吗?我可以将nginx配置成映射到这个端口吗?或者我是否设置了一个负载均衡器来代理流量(这看起来相当复杂,因为这对我来说都是很新的)?
Ps。在Google中,您不能使用“-p 443:1024 .”如果我是对的,基本上也是一样的。但是容器化的VM不允许这样做。
发布于 2022-10-05 00:03:18
容器优化的OS将端口一对一地映射。容器中的端口1000在公共接口上映射为1000。我不知道有什么方法可以改变这种状况。
对于您的情况,请使用带有Docker的Compute引擎或代理连接的负载均衡器。
注意:如果您使用负载均衡器,您的应用程序不需要管理SSL/TLS。将SSL/TLS卸载到负载均衡器,并在应用程序中发布HTTP。然后,Google可以为您管理SSL证书的颁发和更新。您会发现管理容器的SSL证书是一种部署上的痛苦。
https://stackoverflow.com/questions/73950030
复制相似问题