我使用Nginx作为私有子网中的EC2上的反向代理。在公共子网中,我为域proxy.mydomain.test
创建了一个ALB和一个ACM。
LB的目标组使用443端口,使用HTTPS协议。LB的监听器也在使用443端口和HTTPS协议,甚至ELBSecurityPolicy-2016-08
ssl策略和ACM的证书arn。它的作用是使用forward
。
LB的监听规则的动作也是forward
,host_header
条件。全域proxy.mydomain.test
。
Nginx代理服务器的职责是指向内部子网中为另一个服务提供服务的ELB端点。所以它可能应该使用proxy_pass,然后我认为/var/www/html是不必要的。
那么关于EC2中的Nginx,有必要创建一个自签名证书吗?
并且,在Nginx的服务器侦听配置中,使用80或443来捕获入站?
这取决于您的架构。
- 如果您的
NGINX proxy
是公共端点,它必须具有SSL证书。 - 如果您的
Load Balancer
是公共端点,它必须有SSL证书
在这种情况下,您的Load Balancer
是内部配置,只允许内部VPC访问,因此HTTP流量(超过端口80)就足够了。但是对于最佳实践,您可以在任何层增强安全性,并将其设置为HTTPS,这是鼓励的。
出于安全考虑,对于公共端点,我们通常配置为将流量从端口80重定向到端口443。
参考:https://linuxize.com/post/redirect-http-to-https-in-nginx/
通常您不需要在ALB和实例之间使用SSL/HTTPS,或者当您在VPC内路由流量时。所以你的流量是:
client ---(HTTPS)--->ALB----(HTTP)--->NGINX---(HTTP)--->ALB
通常您只加密从internet到ALB的流量。