AWS:ELB:Route 53:Nginx:裸域重定向

时间:2015-01-06 02:57:26

标签: redirect amazon-web-services nginx dns load-balancing

设置
我在Opsworks Layer中运行了两个rails应用程序实例。 我正在使用Route 53和ELB将流量路由到我的Layer。

目标
将裸域流量重定向到我的www域。 chicken.com - > www.chicken.com

我尝试了什么
我改变了我的nginx conf(在一个实例上)来解决这个问题。我添加了以下内容:

server {
 listen 80;
 server_name chicken.com;
 return 301 $scheme://www.chicken.com$request_uri;
}
... rest of config here

结果
实例不再受其IP的影响。

ELB将我已更改的实例标记为“停止服务”,因为IP无法再访问(运行状况检查失败)。

问题
如何将裸域路由到www域,同时让我的ELB健康检查更快乐?

1 个答案:

答案 0 :(得分:1)

ELB健康检查预计会有200回复​​。你在检查chicken.com而不是www.chicken.com吗?重定向页面不足以进行运行状况检查。

要同时进行重定向并为ELB检查提供200响应(来自内部IP),请使用以下配置:

server {
 listen 80;
 server_name chicken.com;
 return 301 $scheme://www.chicken.com$request_uri;
}
server {
 listen 80 default_server;
 server_name www.chicken.com;
 ...

请注意default_server选项。如果未设置,则定义的第一个server是默认值。有关详细信息,请参阅nginx docs