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.

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

      (Изменено)

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