Amazon Web Service — маршрутизация трафика на ELB через SNI

Заранее извините, если это не имеет особого смысла. Я довольно новичок в этом, так что потерпите меня, пожалуйста.

Я пытаюсь указать домен для определенной папки в зависимости от имени домена, которое использует пользователь (example.com или test123.com), через Amazon Elastic Load Balancer (точнее, балансировщик нагрузки приложений).

Моя текущая настройка заключается в том, что весь трафик из Интернета направляется на балансировщик нагрузки (ELB), а оттуда он проходит по кругу между двумя экземплярами EC2. Оба инстанса подключены к сетевой файловой системе Amazon (EFS), а также к реляционной базе данных (RDS). Я могу получить доступ к веб-сайтам через DNS балансировщика нагрузки (http://web-load-balancer-efs-16512354.us-east-1.elb.amazonaws.com/example/)

Теперь я хочу настроить его так, чтобы, если кто-то указал example.com в качестве своего URL-адреса, он указывал на балансировщик нагрузки, и оттуда сервер использовал правильную папку в качестве корня (www.example.com корневой документ документа будет http://web-load-balancer-efs-16512354.us-east-1.elb.amazonaws.com/example/, но URL по-прежнему будет www.example.com).

Я создал размещенную зону на Route 53, чтобы указать доменное имя на мой балансировщик нагрузки, но в настоящее время мой балансировщик нагрузки ведет к одному из экземпляров ec2. В настоящее время корневой документ ec2 находится в /var/www/html/efs-mount/. Есть ли способ иметь несколько корневых документов в зависимости от доменного имени?

Я наткнулся на что-то о размещении нескольких сертификатов TLS / SSL на вашем прослушивателе, и через протокол SNI он сможет найти нужное место? http://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#https-listener-certificates. Я не уверен, что это то, что мне нужно, или я совсем сбился с пути.

Если кто-то может указать мне правильное направление, как это сделать, это было бы здорово.

Спасибо


person Radizzt    schedule 18.10.2017    source источник


Ответы (1)


Вы действительно сбились с пути.

Хотя ALB с несколькими сертификатами SSL может быть частью вашей стратегии, поскольку он позволяет вам прикреплять несколько сертификатов ACM к одному экземпляру или группе экземпляров, ALB не перезаписывает пути входящих запросов и не определяет, как разрешается экземпляр. веб-пути в пути файловой системы.

Это что-то настроено на вашем веб-сервере. Начните с поиска чего-то вроде «виртуальный хостинг на основе имени». Каждое доменное имя будет указывать свой собственный «корневой документ» в файлах конфигурации веб-сервера.

person Michael - sqlbot    schedule 18.10.2017
comment
будет ли это ближе к тому, что вы имеете в виду? brianshim.com/webtricks/host-multiple-sites-amazon-ec2 - person Radizzt; 19.10.2017
comment
на самом деле я нашел тот, который немного лучше и чище. nouveauframework.org/blog/ Это работает, но когда я пытаюсь использовать https://, используется не тот сертификат. он использует стандартный. мне просто добавить порт 443 к ‹виртуальному хосту›? - person Radizzt; 19.10.2017
comment
Сертификат выбирается балансировщиком нагрузки, а не экземпляром. Проверьте настройки там. - person Michael - sqlbot; 19.10.2017
comment
хм, странно, теперь https:// www .example.com работает, но example.com не работает. Когда я создаю сертификат, я помещаю *.example.com. это может быть причиной? - person Radizzt; 19.10.2017
comment
Да, это причина. В сертификатах SSL *. означает ровно один токен и ровно одну точку. *.example.com подходит для foo.example.com, но не для example.com, а также не для foo.bar.example.com. Если вы получаете сертификат от ACM, укажите как example.com, так и *.example.com при создании сертификата. - person Michael - sqlbot; 20.10.2017
comment
Кроме того, обратите внимание, что в Stack Overflow вы можете цитировать вещи с помощью символа обратной кавычки ` в комментариях, чтобы предотвратить превращение URL-адресов в ссылки и убедиться, что небольшие фрагменты кода и буквальные строки отображаются правильно. - person Michael - sqlbot; 20.10.2017
comment
Я думаю, что мне может понадобиться запросить другой сертификат. Я не думаю, что смогу добавить example.com в текущий сертификат. Спасибо за вашу помощь/совет! - person Radizzt; 20.10.2017
comment
Правильно, вы не можете изменить существующий сертификат, но вы можете запросить один сертификат как с пустым доменом, так и с подстановочным знаком. - person Michael - sqlbot; 20.10.2017