Nginx: AWS Route 53: ELB: голый редирект

Настроить
У меня есть два экземпляра приложения rails, работающие в слое Opsworks. Я использую Route 53 и ELB для маршрутизации трафика на мой уровень.

Задача
Чтобы перенаправить трафик незащищенного домена на мой домен 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 пометил экземпляр, который я изменил, как "Out of Service", так как он больше не может быть достигнут по IP (проверка работоспособности не проходит).

Вопрос
Как я могу перенаправить открытые домены на домены www, сохраняя при этом мои проверки работоспособности ELB?

2 ответа

Решение

Вам нужно настроить что-то, что будет возвращать 2xx при проверке работоспособности, в настоящее время 301 заставляет ELB думать, что он не работает, вы могли бы поставить что-то вроде этого

server {
 listen 80;
 server_name chicken.com;

 location ^~ /health {
   proxy_pass http://my_proxy;
 }

 location / {
   return 301 $scheme://www.chicken.com$request_uri;
 }

}

server {
 listen 80;
 server_name www.chicken.com;

 location / {
   proxy_pass http://my_proxy;
 }
}

Или более простой способ.

      server {
 listen 80;
 server_name chicken.com;

 location /status {
        stub_status   on;
 }

 location / {
   return 301 $scheme://www.chicken.com$request_uri;
 }

}
Другие вопросы по тегам