Поддомен с подстановочными знаками в Nginx в экземпляре EC2 по умолчанию

Я использую экземпляр EC2 по умолчанию без зарегистрированного доменного имени. Я пытаюсь протестировать некоторые функции мультитенантности в приложении стека MEAN, используя поддомены.

В основном я могу получить доступ к сайту через браузер, используя общедоступный DNS AWS по умолчанию ex.

http://ec2-xx-xx-xx-xx.us-west-2.compute.amazonaws.com

Все хорошо, работает нормально.

Проблема в том, что я хочу включить возможность доступа к поддоменам этого домена. Так, например, я хочу иметь возможность ударить:

http://client1.ec2-xx-xx-xx-xx.us-west-2.compute.amazonaws.com
http://client2.ec2-xx-xx-xx-xx.us-west-2.compute.amazonaws.com
etc.

Я не могу понять, как это сделать с помощью nginx. Вот мой текущий файл по умолчанию для nginx:

server {
        listen 80;

        server_name *.ec2-xx-xx-xx-xx.us-west-2.compute.amazonaws.com;

        location / {
                proxy_pass http://127.0.0.1:8080/;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;
        }
}

Однако, когда я перехожу к любому поддомену, я получаю сообщение об ошибке, что веб-страница недоступна.

Если я обращаюсь к нему без поддомена, страница загружается нормально.

Любые идеи о том, как я могу заставить это работать?

Ценю любую помощь!

РЕДАКТИРОВАТЬ: вы заметите, что я создал прокси-прокси, потому что у меня есть мой сервер узла, постоянно использующий порт 8080.


person harbinja    schedule 19.02.2016    source источник


Ответы (2)


Насколько мне известно, Amazon не создает записи с подстановочными знаками для своих доменов EC2, поэтому файлы *. адреса даже не разрешаются (вы легко можете это проверить). Вместо этого вам нужно будет зарегистрировать домен и назначить его подстановочным знаком как CNAME для вашего экземпляра EC2.

person Joshua DeWald    schedule 19.02.2016
comment
О, нет! Я этого боялся. Есть ли способ обойти это без регистрации домена? - person harbinja; 19.02.2016
comment
Закончилось создание поддомена поддомена: * .dev.mydomain.com - person harbinja; 19.02.2016

Вы не можете сделать это с именем хоста amazonaws по умолчанию, но есть другой способ.

См. http://xip.io.

any.subdomain.you-like.x.x.x.x.xip.io автоматически преобразуется в IP-адрес x.x.x.x, поэтому, если вы замените IP-адрес своего экземпляра EC2 в имени хоста, у вас есть все, что вам нужно.

Для ясности: я не связан с этой службой.

person Michael - sqlbot    schedule 20.02.2016