Давай запустим React-app на vps сервере и привяжем к домену. И так, я уже создал приложение в среде React-app локально и сделал build . Получил статический фронт, готовый для размещения на хостинге. Так как будущее приложение являет собой Чат, то у меня также будет back-end с базой данных, но в этой статье я рассмотрю только как запустить фронт на VPS сервере и привяжу его к домену.
1. DNS-запись
- У тебя должна быть DNS-запись типа
Aдляchat.weblegko.ru, указывающая на IP твоего VPS.
2. Структура сайта
- Фронтенд файлы — в папке, например,
/var/www/chat-app/chat-frontend/ - Бэкенд API — запускается на сервере и слушает, например, порт 3000 или 8080.
Загрузи через файловый менеджер хостинга все содержимое папки build в папку /var/www/chat-app/chat-frontend/
3. Настройка Nginx
Обычно для сайта создают отдельный файл внутри /etc/nginx/sites-available/, например chat-app, и создают символическую ссылку в /etc/nginx/sites-enabled/.
sudo nano /etc/nginx/sites-available/chat-app
Эта откроет встроенный редактор для редактирования файла chat-app
Вот базовой пример конфигурации nginx для сервировки React build:
server {
listen 80;
server_name chat.weblegko.ru;
# Обслуживание фронтенда
location / {
root /var/www/chat-app/chat-frontend/;
try_files $uri /index.html;
}
# чтобы читалась папка static (возможно это лишнее)
location /static/ {
root /var/www/chat-app/chat-frontend;
}
# API - проксирование запросов
location /api/ {
proxy_pass http://127.0.0.1:3000/; # порт, на котором работает API
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Прописав конфигурацию нажми Ctrl+0 и Enter, чтобы сохранить. Потом нажми Ctrl+X для выхода из редактора.
Обязательно создай символическую ссылку в sites-enabled для правильной работы nginx:
sudo ln -s /etc/nginx/sites-available/chat-app /etc/nginx/sites-enabled/
Обязательно добавь разрешения nginx для доступа к файлам и папкам, для скриптов, стилей и др.
sudo chown -R www-data:www-data /var/www/chat-app/chat-frontend
sudo chmod -R 755 /var/www/chat-app/chat-frontend
sudo chown -R www-data:www-data /path/to/your/build
— Эта команда меняет владельца и группу всех файлов и папок внутри /path/to/your/build на www-data, что является стандартным пользователем и группой для nginx на большинстве систем Ubuntu. Это гарантирует, что nginx сможет читать эти файлы.
sudo chmod -R 755 /path/to/your/build
— Эта команда устанавливает права доступа к файлам и папкам, позволяя владельцу читать, писать и выполнять (если это папки), а группе и другим пользователям — только читать и выполнять. Это обеспечивает доступ для nginx и других пользователей к файлам сайта.
Проверьте в порядке ли ваша конфигурация:
sudo nginx -t # проверить синтаксис
sudo systemctl reload nginx # применить все изменения и перезагрузить ngnix
- Всё, что не начинается с
/api/, отдастся как статические файлы фронтенда. - Запросы к
/api/будут перенаправляться на локальный сервер API.
На данном этапе первоначальная настройка nginx закончена, и домен прикручен к vps серверу. Если набрать chat.weblegko.ru в браузере то отобразить фронт. Конечно еще нужно настроить ssl — защищенное соединение, но это в следующий раз. Спасибо всем, кто дочитал…

