2014-11-23 1 views
0

Я пытаюсь получить весь трафик в качестве https. Однако сервер находится за ELB AWS. Поэтому я настроил слушателя на ELB, чтобы направить 80 -> 81 и 443 -> 80 , т. Е. Весь трафик http отправляется на порт 81 на сервере rails. И весь трафик https переходит на порт 80 (ssl завершен на ELB) Я пытаюсь заставить nginx перенаправить весь порт 81 на https. Кажется достаточно простым.переадресовать с 81 по 443 в nginx

Так у меня есть блок сервера под названием redirect_to_ssl в sites_available каталога это выглядит следующим образом:

server { 
     listen   81; 
     server_name redirect_to_ssl; 
     return   301 https://$hostname$request_uri; 
} 

Я слинкован этот файл на сайты с поддержкой

И я перезарядил конфигурацию для nginx

Но когда я пытаюсь ломать localhost: 81, я получаю отказ в соединении. И когда я пытаюсь просматривать сайт со стороны ELB, он ничего не делает

Любые идеи? Есть ли другой способ сделать то, что я пытаюсь сделать с AWS ELB?

ответ

1

Директива server_name не является меткой, это имя виртуального сервера, то есть его значение должно совпадать с заголовком HTTP Host входящих запросов для доступа к серверному блоку. Таким образом, он, вероятно, никогда не будет соответствовать заголовку хоста хоста Host, который будет использоваться с вашей настройкой и никогда не будет достигнут.

Прочитать documentation.

Использование $hostname также странно, если вы используете систему балансировки нагрузки ...

+0

Спасибо за ответ. Я попробовал это без имени server_name. Он никогда не работал. Итак, я посмотрел на текущий веб-сайт, а имя_сервера - просто имя папки приложения ruby. Нет отношения к домену, на котором его обслуживают? – Bernard

+0

Странно, что я получаю Connection отказался, когда я на сервере делаю завиток до 127.0.0.1:81 – Bernard

+0

@Bernard Имя папки? Ваша установка полностью сломана, получите [некоторые базовые знания nginx] (http://nginx.org/en/docs/), тогда у вас будет более четкое представление. Если у вас было отказано в подключении, nginx не прослушивает этот порт, потому что либо он не запускался, либо конфигурация плохая, либо брандмауэр отправляет сброс TCP для этого порта. –