Как залить на один VPS-сервер папку с node.js сервером и react-app фронтендом?

Задача - залить на один VPS-сервер папку с node.js сервером и react-app фронтендом.

Вводные: VPS от REG.RU с предустановленной панелью FastPanel на Ubuntu20.

  • Сервер залит в root/home/ и отрабатывает по IP xxx.xxx.xxx.xxx:4444 (без HTTPS)
  • Фронтенд залит далеко в /var/www/example.ru_user(это юзер из панели FastPanel. Вот такой странный путь...)/data/www/example.ru/(тут лежат файлы билда от реакта)

На VPS предустановлен сервер nginx и им управляет панель FastPanel (а это значит она там в ручную заменила стандартные файлы, но я нашел конфиг от текущего сайта)

Ситуация - Запускается нормально статика с фронтенда по домену example.ru, но запросы с фронтенда происходят к IP сервера xxx.xxx.xxx.xxx:4444(и тут запросы по /auth/login или /ads) и ругаются, что запросы идут на HTTP без SSL сертификата и ничего дальше не происходит.

Как я понял тут 2 выхода.

  1. Или установить SSL на IP сервера каким-то образом.
  2. Сделать прокси через nginx. Я даже сам настроил 1 редирект, но как это сделать по всем адресам, что будут идти после "/".

AXIOS

Во фронтенде axios был настроен на IP xxx.xxx.xxx.xxx:4444, думал заменирь на https, но без SSL толку от этого не будет. Поменял на example.ru и теперь запросы летят по http://example.ru/ads, пошел настраивать nginx.

NGINX

Вот часть кода .conf:

location = / {

        index index.html;

    }

location /ads {

        proxy_pass http://xx.xxx.xxx.xxx:4444/ads;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_redirect default;

    }

    location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpeg|avi|zip|gz|bz2|rar|swf|ico|7z|doc|docx|map|ogg|otf|pdf|tff|tif|txt|wav|webp|woff|woff2|xls|xlsx|xml)$ {
        try_files $uri $uri/ =404;
    }

Запрос на ads отрабатывает, но все остальные соответственно выдают ошибку. Как мне сделать, чтобы все запросы кроме / проксились по IP:4444?

Или может есть другое решение?


Ответы (0 шт):