Я хочу развернуть отдельные и внешние приложения на одном сервере с nginx - PullRequest
1 голос
/ 13 февраля 2020

Я создал успокоительный API с nodejs, и я планирую использовать sapper / svelte для front-end. В конце концов, это будут отдельные приложения, и я хочу запустить их на одном сервере с одним доменом. Является ли такой подход разумным? Если это так, как должен выглядеть мой файл конфигурации nginx? Если нет, каким должен быть мой подход?

Это мой конф для API:

server {
    server_name domain.name;

    location / {
        proxy_pass http://localhost:5000;
        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;
    }
   .
   .
   .
}

Ответы [ 2 ]

0 голосов
/ 17 февраля 2020

В соответствии с наилучшей практикой ваш API будет находиться под BASE / api /

, что позволит вам разместить бэкэнд + внешний интерфейс на нормальном сервере

server {
    server_name domain.name;

    location /api/ {    # Backend
        proxy_pass http://localhost:5000;
        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;

        ...
    }

    location / {    # Frontend
        root        /app-path/;
        index       index.html;
        try_files   $uri $uri/ /index.html;

        ...
    }
}
0 голосов
/ 16 февраля 2020

Поскольку это ваш первый проект svelte / sapper, я хотел бы оставить все как есть и посмотреть, сможете ли вы начать использовать svelte, чтобы запустить API на nginx. Разъединяйте вещи и отправляйте svelte на страницы gitlab или в любое другое место назначения CI, которое вы предпочитаете.

Если приходит время работать с сапером, мой совет остается прежним - пусть он воздействует на ваш API внешне для Держите ваши проекты четкими и четкими. Вы уже запустили API до внешнего интерфейса - не беспокойтесь, но я не понимаю, как ваш конфиг должен знать, где будет работать внешний интерфейс или почему их переплетение будет полезным.

...