Два разных порта для передней и задней части? (используя Strapi) - настройка для nginx - PullRequest
0 голосов
/ 11 июня 2019

Я думаю, это очень простой вопрос, но он все еще смущает меня.На этапе разработки, при запуске реакции с 'npm start', я использую порт 3000. Кроме того, при запуске strapi (это серверный cms), он автоматически использует порт 1337.

Означает ли это, что мойприложение использует два разных порта?

Я спрашиваю об этом, потому что я хотел бы настроить nginx так, чтобы я мог запускать два разных приложения strapi (подключенных к двум разным приложениям реакции) - на одном сервере.

Я хочу, чтобы nginx перенаправлял из определенного места на второй сайт.Я мог бы написать внутри доступного файла sites:

server {
    listen 80;
    location / {
      proxy_pass "http://mysite:3000";
    }

    location /mysecondsite {
      rewrite ^/mysecondsite(.*) $1 break;
      proxy pass "http://mysite:??????? WHAT SHOULD I WRITE HERE?"
    }
}

Но куда я должен перенаправлять пользователей, вводящих URL-адрес секунды, на какой порт?

В документации по strapi они указывают на файл с именемserver.json, где вы можете изменить порт, который использует strapi, а также создать прокси (что я не понимаю, зачем вам это нужно, если вы можете просто перенаправить из nginx?), например:

{
  "host": "localhost",
  "port": 1337,
  "proxy": {
    "enabled": true,
    "ssl": true,
    "host": "example.com",
    "port": 8443
  },
  "autoReload": {
    "enabled": true
  },
  "cron": {
    "enabled": true
  }
}

Но изменение порта второго проекта повлияет только на бэкэнд страппи, не так ли?Как я могу создать другой порт для внешнего интерфейса второго проекта?

Извините, если я неправильно понимаю здесь условия Спасибо заранее

1 Ответ

0 голосов
/ 11 июня 2019

Обновление 2019-06-29: (одно приложение - интерфейс и страппи)

Я возвращаюсь, потому что обнаруживаю, что кто-то разрешает ваше дело и развертывает одно приложение с помощью strapi.

Как интегрировать Strapi API и панель администратора с другим приложением узла (которое использует Strapi API)?

Так что вам придется создать приложение для веб-сайта. И поместите сборку в папку ./public приложения Strapi.

enter image description here

Затем в ваших api/.../config/routes.json файлах вам нужно будет добавить опцию prefix в ключе config каждого из ваших маршрутов и для всех ваших API

{
   "routes": [
     {
       "method": "POST",
       "path": "/restaurants",
       "handler": "Restaurant.create",
       "config": {
         "policies": [],
         "prefix": "/api"
       }
     }
   ]
 }
  • Так что в конце у вас будет админ на /admin
  • Ваши конечные точки API имеют префикс /api
  • А ваш сайт / активы на /

И вам не нужно настраивать nginx для второго приложения, потому что оно только одно.


2019-06-11: (два отдельных приложения)

Вы хотите, чтобы основное приложение реакции на порт 3000 и cms для внутреннего интерфейса API на 1337 использовалось главным приложением реакции? Вы можете использовать конфигурацию, как показано ниже.

nginx.conf

server {
  listen 80;
  server_name mywebsite.pl www.mywebsite.pl;

  location / {
    proxy_pass http://mysite:3000/;
  }

  location /admin/
  {
    proxy_pass http://mysite:1337/admin/;
  }

  location /strapi/
  {
    proxy_pass http://mysite:1337/;
  }
}

server.json

{
  "host": "localhost",
  "port": 1337,
  "proxy": {
     "enabled": false
  },
  "autoReload": {
    "enabled": true
  },
  "cron": {
    "enabled": false
  },
  "admin": {
    "path": "/admin",
    "build": {
      "host": "/admin",
      "backend": "http://mywebsite/strapi",
      "plugins": {
        "source": "backend",
        "folder": "/strapi"
      }
    }
  }
}

Помните:

  1. ⚠️ Если вы изменили путь доступа к администрированию, необходимо выполнить шаг # 2 -> Вы должны перезагрузить администратора, чтобы установить зависимости и построить проект

  2. Изменить в производственной среде NODE_ENV флаг на production. Запустить сервер с настройками производства.

Ресурс:

  1. Развернуть панель администрирования на другом сервере, затем API
  2. Развертывание
...