在 aws 上公开非 80 或 443 端口
Expose non 80 or 443 port on aws
我希望在 ec2 上托管的服务器上启用 https 并将流量从 http 重定向到 https。
我已经通过 https 实现了与端口 4000 的绑定,但是在为我的实例公开此端口以提供内容时遇到问题。
在我的安全组中,我有以下配置:
万一它可能有用,sudo docker ps
的输出是:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
59315f7862f1 site_web "/site/entrypoint.sh …" 37 minutes ago Up 36 minutes 0.0.0.0:443->443/tcp, 0.0.0.0:4000-4001- >4000-4001/tcp, 0.0.0.0:5432->5432/tcp site_1
我正在考虑使用nginx从443或iptables重定向流量的路由。
解决这个问题应该看什么方向?我是否非常规地配置了这个?
您编写的安全组允许 tcp/443
来自任何地方(IPv4 和 IPv6),tcp/80
来自任何地方(IPv4 和 IPv6)并允许 tcp/22
来自单个 IP 146.90.23.135
.
如果您的目标是公开列出的所有 docker 端口,您应该删除安全组中的两个 TCP 80
条目并添加两个新条目:
- 类型:自定义 TCP 规则,协议:TCP,端口范围:4000- 4001,来源:0.0.0.0/0
- 类型:自定义 TCP 规则,协议:TCP,端口范围:5432, 来源:0.0.0.0/0
- 保留 TCP 443(转到您的 docker 容器)和 TCP 22(这样您就可以通过 SSH 连接到您的主机)的规则。
一些注意事项:
- 安全组的
Type
栏其实只是为了帮助输入常用协议,从filtering/firewall的角度来说没有任何意义。 HTTP
与端口范围设置为 80
的 Custom TCP Rule
没有区别。
- 您不会使用 AWS 安全组进行任何端口重定向。如果你需要,你可以在 OS 中使用 iptables,或者你可以使用 AWS 的 Elastic Load Balancer。
我希望在 ec2 上托管的服务器上启用 https 并将流量从 http 重定向到 https。
我已经通过 https 实现了与端口 4000 的绑定,但是在为我的实例公开此端口以提供内容时遇到问题。
在我的安全组中,我有以下配置:
万一它可能有用,sudo docker ps
的输出是:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
59315f7862f1 site_web "/site/entrypoint.sh …" 37 minutes ago Up 36 minutes 0.0.0.0:443->443/tcp, 0.0.0.0:4000-4001- >4000-4001/tcp, 0.0.0.0:5432->5432/tcp site_1
我正在考虑使用nginx从443或iptables重定向流量的路由。
解决这个问题应该看什么方向?我是否非常规地配置了这个?
您编写的安全组允许 tcp/443
来自任何地方(IPv4 和 IPv6),tcp/80
来自任何地方(IPv4 和 IPv6)并允许 tcp/22
来自单个 IP 146.90.23.135
.
如果您的目标是公开列出的所有 docker 端口,您应该删除安全组中的两个 TCP 80
条目并添加两个新条目:
- 类型:自定义 TCP 规则,协议:TCP,端口范围:4000- 4001,来源:0.0.0.0/0
- 类型:自定义 TCP 规则,协议:TCP,端口范围:5432, 来源:0.0.0.0/0
- 保留 TCP 443(转到您的 docker 容器)和 TCP 22(这样您就可以通过 SSH 连接到您的主机)的规则。
一些注意事项:
- 安全组的
Type
栏其实只是为了帮助输入常用协议,从filtering/firewall的角度来说没有任何意义。HTTP
与端口范围设置为80
的Custom TCP Rule
没有区别。 - 您不会使用 AWS 安全组进行任何端口重定向。如果你需要,你可以在 OS 中使用 iptables,或者你可以使用 AWS 的 Elastic Load Balancer。