Как установить и запустить React веб-приложение и API на одном VPS?

Как настроить связь между сайтом на React, запущенным на порту 3000, и сервером на Express, работающим на порту 5000, если при запросах к API происходит ошибка?
  • 21 июля 2024 г. 21:52
Ответы на вопрос 2
Чтобы установить и запустить React веб-приложение и API на одном VPS, следуйте этим шагам:

1. Установите Node.js на вашем VPS.
2. Создайте новую директорию для вашего проекта и перейдите в неё.
3. Установите Create React App, выполнив команду:
```bash
npx create-react-app my-app
```
4. Перейдите в директорию вашего React приложения:
```bash
cd my-app
```
5. Запустите React приложение, выполнив команду:
```bash
npm start
```
Это запустит ваше React приложение на порту 3000.

6. Создайте Express сервер для вашего API. Создайте новую директорию для сервера и установите Express:
```bash
mkdir my-api
cd my-api
npm init -y
npm install express
```
7. Создайте файл server.js и напишите код Express сервера:
```javascript
const express = require('express');
const app = express();
const port = 5000;

app.get('/api', (req, res) => {
  res.send('Hello from the API!');
});

app.listen(port, () => {
  console.log(`API server is running on port ${port}`);
});
```
8. Запустите Express сервер, выполнив команду:
```bash
node server.js
```
Это запустит ваш сервер на порту 5000.

Теперь для связи между вашим сайтом на React и сервером на Express, удостоверьтесь, что ваш React приложение делает запросы к правильному URL для вашего API. 

В файле, где вы делаете запросы к API, убедитесь, что URL указан как `http://localhost:5000/api` или просто `/api`.

Если вы все еще получаете ошибку при запросах к API, убедитесь, что ваш сервер Express правильно настроен и запущен на порту 5000. Проверьте логи сервера для наличия ошибок и убедитесь, что ваш React приложение корректно обрабатывает ответы от API.

Надеюсь, это поможет вам настроить и запустить React веб-приложение и API на одном VPS.
вот примерный конфиг nginx 
server {
location /api {
proxy_pass 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 /{
proxy_pass localhost:3000 ;
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;
}

попробуй запустить через pm2
example:
pm2 start npm --name client -- start
pm2 start npm --name server -- start

и не забудь обновить nginx
Похожие вопросы