在aws上暴露非80或443端口

时间:2018-04-07 23:48:41

标签: amazon-web-services nginx amazon-ec2 configuration iptables

我希望在ec2上托管的服务器上启用https并将流量从http重定向到https。

我已经使用https实现了对端口4000的绑定,但是在我的实例中为此内容提供内容时遇到了问题。

在我的安全组中,我有以下配置:

enter image description here

如果它可能有用,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的流量。

我应该从哪个方向来解决这个问题?我是非常规地配置这个吗?

1 个答案:

答案 0 :(得分:1)

您编写的安全组允许来自任何地方的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列实际上只是为了帮助输入常用协议,从过滤/防火墙的角度来看,它没有任何意义。 HTTP与端口范围设置为Custom TCP Rule的{​​{1}}没有区别。
  • 您不会使用AWS安全组对端口进行任何重定向。如果需要,可以在操作系统中使用iptables,也可以使用AWS的Elastic Load Balancer。