Для того чтобы развернуть ваш проект на сервере с Ubuntu 22.04, вам нужно будет выполнить следующие шаги:
- Настройка сервера:
- Установите Node.js и npm.
- Установите PM2 для управления процессами Node.js.
- Настройте брандмауэр, чтобы разрешить трафик на порты, используемые вашим приложением.
- Установите и настройте веб-сервер Nginx для обратного прокси-сервера.
- Развертывание сервера:
- Скопируйте код вашего приложения на сервер.
- Установите зависимости и запустите серверное приложение.
- Настройте PM2 для управления вашим серверным приложением.
- Развертывание клиента:
- Скопируйте клиентский код на сервер.
- Установите зависимости и соберите клиентское приложение.
- Настройте Nginx для обслуживания вашего клиентского приложения.
Шаги для настройки
Установка необходимых пакетов
- Обновите пакеты:
sudo apt update
sudo apt upgrade -y
- Установите Node.js и npm:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
- Установите PM2:
sudo npm install -g pm2
- Установите Nginx:sudo apt install -y nginx
2. Развертывание серверного приложения
- Скопируйте код вашего серверного приложения на сервер.
- Например, вы можете использовать
scp
для копирования файлов с локальной машины на сервер:scp -r /path/to/your/server/code username@API:/home/username/server
- Например, вы можете использовать
- Перейдите в каталог с вашим серверным приложением и установите зависимости:
cd /home/username/server
npm install
- Настройте PM2 для управления вашим серверным приложением:
pm2 start bin/www --name server
pm2 save
pm2 startup
3. Развертывание клиентского приложения
- Скопируйте код вашего клиентского приложения на сервер.
scp -r /path/to/your/client/code username@API:/home/username/client
- Перейдите в каталог с вашим клиентским приложением и установите зависимости:
cd /home/username/client
npm install
- Соберите клиентское приложение:
npm run build
- Запустите клиентское приложение с PM2:
pm2 start npm --name client -- run start
pm2 save
Настройка Nginx
Убедитесь, что ваш Nginx настроен корректно для работы с доменом и проксированием запросов к серверу.
Откройте файл конфигурации Nginx:
sudo nano /etc/nginx/sites-available/hostname.com
Добавьте или обновите конфигурацию для проксирования:
server {
listen 80;
server_name
hostname.com
;location / { proxy_pass http://localhost:5001; // Прокси для вашего клиентского приложения
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;
}
}
Сохраните файл и создайте символическую ссылку:
sudo ln -s /etc/nginx/sites-available/yezzyfood.ru /etc/nginx/sites-enabled/
Проверьте конфигурацию Nginx и перезапустите его:
sudo nginx -t sudo systemctl restart nginx
Итоговые шаги
Проверьте, что ваше клиентское приложение использует правильный URL для API:
export const config = { api: { url: "http://API:3000" } };
Перезапустите ваше серверное приложение:
pm2 restart server
Перезапустите ваше клиентское приложение:
pm2 restart client
Убедитесь, что ваше клиентское приложение доступно по адресу
http://
и взаимодействует с API по адресуhostname.com
http://API:3000
.
Таким образом, ваше клиентское приложение будет доступно по домену hostname.com
, а серверное приложение будет доступно по IP-адресу.