1
Не получается получить доступ к приложению React через основной IP-адрес
После запуска команды npm start и node server.js не удается получить доступ к React-приложению по IP-адресу и порту. Приложение настроено на работу через Nginx на сервере Ubuntu 22.04. Доменные серверы уже добавлены в настройки DNS. В чем может быть проблема?
Версии программ:
ОС: Ubuntu 22.04 x64.
Node.js: Версии 18.13.0.
Nginx: Версии 1.22.0.
Конфигурация Nginx:
server {
listen 80 default_server;
server_name _;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
location / {
proxy_pass http://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;
try_files $uri /index.html;
}
}Мои действия:
1. Установил Nginx:
sudo apt-get update
sudo apt-get install nginx2. Изменил конфигурацию Nginx:
sudo nano /etc/nginx/sites-available/default3. Проверил конфигурацию и перезапустил Nginx:
sudo nginx -t
sudo systemctl restart nginx
Ответы
Дмитрий Иванов
(Изменено)
Проблема может быть вызвана следующими причинами:
1. Nginx неправильно настроен.
2. Доступ блокирует фаервол.
3. Проблема с React-приложением.
Возможные решения:
1. Если проблема в конфигурации Nginx:
Откройте для редактирования файл конфигурации Nginx /etc/nginx/sites-available/default. Например так:
Измените блок описания конфигурации сервера, чтобы он выглядел примерно так:
После сохранения конфигурации Nginx проверьте её на ошибки:
Устраните ошибки, если они есть.
Если ошибок нет, то перезапустите Nginx:
Если проблему не удалось решить, то просмотрите логи ошибок Nginx и пришлите их сюда чтобы можно было посоветовать решения.
2. Если проблема с firewall:
Если используете ufw, то решение будет выглядеть так:
Разрешите Nginx в firewall.
Удалите правило, которое ограничивает доступ только к порту 80:
Перезапустите ufw для применения правил:
3. Если проблема в приложении:
Запустите приложение:
Убедитесь, что приложение доступно:
Если приложение возвращает корректный ответ, значит оно работает правильно и проблема, возможно, в настройках Nginx или сети.
Если приложение не отвечает, убедитесь, что оно слушает порт 3000:
Если приложения нет в списке слушающих порт, то перезапустите его и проверьте конфигурацию.
Александр Смирнов
(Изменено)
Спасибо за ответ.
Буду пробовать.