@kickass77

Как развернуть nginx для nodejs и react?

Здравствуйте! Не испытывал никогда проблем в реализации на localhost с запуском проекта, но на vps сервере возникли сложности.
Стоит Debian 11.
После установки nginx, появилась папка /var/www/html
В /etc/nginx/sites-available/default указываю следующее:

server {
	listen 80 default_server;
	listen [::]:80 default_server;


	root /var/www/html;

	index index.html index.htm index.nginx-debian.html;

	server_name _;

	location / {
		# serve static frontend first
		try_files $uri $uri/ /index.html;
	}

	# location ~*^/(api) {
	location /api {
		proxy_pass http://<b>ЗДЕСЬ_АЙПИ_МОЕГО_СЕРВЕРА</b>:4000/;
		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;
	}
}


Соответственно, frontend: /var/www/html
А бэкенд будет отрабатывать на 4000 порту с префиксом "api"
p.s. указывал вместо IP и localhost

Файл nodejs приложения:

const setup = {port:4000}

  const express = require ('express'); 

  const app = express ();

  app.get('api/test', (req, res) => {    
    res.send('Тест'); 
  });

  app.listen(setup.port, () => {
    console.log('Сервер: порт %s - старт!', setup.port);
  });


Приложение запущено через pm2, автоматически поднимается, командой pm2 ls вижу, что все активно.

При переходе по адресу IP моего сервера:4000/api/test я получаю в ответ Cannot GET /api/test
Также при переходе по IP моего сервера/ - не удается получить доступ к сайту.

Как правильно настроить, чтобы работало? :(
  • Вопрос задан
  • 341 просмотр
Пригласить эксперта
Ответы на вопрос 1
fzfx
@fzfx
18,5 дм
Уберите концевой слеш в proxy_pass.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы