Развертывание нескольких nodeJS в Digitalocean с Dokku

Я попытался развернуть два приложения nodeJS в Digitalocean с помощью капли dokku. Я использую схему «именования виртуальных хостов», но есть проблема.

Моя конфигурация DNS выглядит так:

введите описание изображения здесь

У меня есть основное приложение и приложение администратора. Я ожидаю увидеть приложение администратора, когда захожу на app.example.com (у меня действительно правильное доменное имя), но я вижу то же приложение, когда нажимаю example.com и app.example.com.

Возможно, что-то не так с nginx, но я точно не знаю, что происходит?


person ppoliani    schedule 11.01.2015    source источник


Ответы (1)


Я заметил одну вещь: какое бы приложение ни было установлено первым, оно будет перенаправлено на example.com.

Вы правильно приписываете такое поведение Nginx. Я думаю, это из-за того, что он каким-то образом возвращается к этой конфигурации, когда не обнаруживает конфигурацию для example.com

Этот плагин dokku (https://github.com/progrium/dokku/tree/master/plugins/nginx-vhosts) отвечает за перезапись nginx.conf для каждого приложения при каждом его развертывании.

В настоящее время он использует шаблон nginx.conf (https://github.com/progrium/dokku/blob/master/plugins/nginx-vhosts/templates/nginx.conf), хотя это довольно недавнее изменение, поэтому убедитесь, что у вас последняя версия.

В итоге вы получите конфигурацию Nginx, которая выглядит следующим образом:

server {
  listen      [::]:80;
  listen      80;
  server_name app.example.com;
  return 301 https://$host$request_uri;
}

В настоящее время я не уверен, почему приведенный выше фрагмент приводит к описанному поведению. Обходной путь - настроить вашу собственную конфигурацию nginx в / etc / nginx / sites-enabled / с

server_name example.com;

но указывая на страницу ожидания или что-то еще, что вам подходит.

person Hairy Chris    schedule 12.01.2015