Как сделать обратный прокси с Nginx для нескольких экземпляров Meteor

Проблема

Я пытаюсь развернуть несколько экземпляров Meteor на одном сервере.

Каждый проект имеет свое собственное доменное имя (например, «A» -> «A.com», «B» ..), но сервер имеет один веб-порт: 80. Поэтому я хочу использовать Nginx для следите за этой статьей

Развертывание

Я использую meteor-up (версия mupx) для развертывания каждого приложения. Это обрезанный пример mup.json

{
  "appName": "A",
  "env": {
    "PORT": "3001",
    "ROOT_URL": "http://www.A.com"
  },
}

Nginx

Это моя версия /etc/nginx/sites-available/A.com.conf

server {
  listen                *:80;

  server_name           A.com;

  access_log            /var/log/nginx/app.dev.access.log;
  error_log             /var/log/nginx/app.dev.error.log;

  location / {
    proxy_pass http://127.0.0.1:3001;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header X-Forwarded-For $remote_addr;
  }
}

Результат

Для каждого домена, когда я звоню:

  :80   -> Ngninx Welcome page
  :3001 -> A.com
  :3002 -> B.com
 ..

Как я могу получить правильный сайт, основываясь на доменном имени, когда я вызываю whatever:80 ?


person Arthur    schedule 14.03.2016    source источник


Ответы (1)


Таким образом, решение состоит в том, чтобы просто добавить все возможные версии имени сервера, а не только имя домена.

Вот так

/etc/nginx/sites-available/A.com.conf

server {
  listen                *:80;

  server_name           A A.com *.A.com;

  access_log            /var/log/nginx/app.dev.access.log;
  [...]
person Arthur    schedule 04.04.2016