Gravatar is an online service that allows Internet users to maintain a consistent image on most websites.

Иван Колдаев

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 nginx

2. Изменил конфигурацию Nginx:

sudo nano /etc/nginx/sites-available/default

3. Проверил конфигурацию и перезапустил Nginx:
sudo nginx -t
sudo systemctl restart nginx

Ответы

  • Gravatar is an online service that allows Internet users to maintain a consistent image on most websites.

    Дмитрий Иванов

    (Изменено)

    Проблема может быть вызвана следующими причинами:
    1. Nginx неправильно настроен.
    2. Доступ блокирует фаервол.
    3. Проблема с React-приложением.

    Возможные решения:

    1. Если проблема в конфигурации Nginx:
    Откройте для редактирования файл конфигурации Nginx /etc/nginx/sites-available/default. Например так:
    $ sudo nano /etc/nginx/sites-available/default

    Измените блок описания конфигурации сервера, чтобы он выглядел примерно так:
    server {
    listen 80;
    server_name www.;
    root /var/www//build;
    index index.html;
    }

    После сохранения конфигурации Nginx проверьте её на ошибки:
    sudo nginx -t

    Устраните ошибки, если они есть.

    Если ошибок нет, то перезапустите Nginx:
    sudo systemctl restart nginx

    Если проблему не удалось решить, то просмотрите логи ошибок Nginx и пришлите их сюда чтобы можно было посоветовать решения.
    sudo tail -f /var/log/nginx/error.log

    2. Если проблема с firewall:
    Если используете ufw, то решение будет выглядеть так:

    Разрешите Nginx в firewall.
    sudo ufw allow 'Nginx Full'

    Удалите правило, которое ограничивает доступ только к порту 80:
    $ sudo ufw delete allow 'Nginx HTTP'

    Перезапустите ufw для применения правил:
    sudo ufw reload

    3. Если проблема в приложении:
    Запустите приложение:
    cd /home//
    npm start

    Убедитесь, что приложение доступно:
    curl -I http://localhost:3000

    Если приложение возвращает корректный ответ, значит оно работает правильно и проблема, возможно, в настройках Nginx или сети.

    Если приложение не отвечает, убедитесь, что оно слушает порт 3000:
    sudo lsof -i :3000

    Если приложения нет в списке слушающих порт, то перезапустите его и проверьте конфигурацию.

    1
    • Gravatar is an online service that allows Internet users to maintain a consistent image on most websites.

      Александр Смирнов

      (Изменено)

      Спасибо за ответ.
      Буду пробовать.