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;
}
}