Задать вопрос
  • Как верстать сайты на двух языках?

    @GC8
    Если используются фреймворки по типу NextJS, то можно использовать i18n и ссылаться на ответ Василий Банников. В других случаях когда просто используется html, то да лучше использовать разный маршрут и рендерить свою верстку. Это будет полезно для SSR.
    Ответ написан
    Комментировать
  • Как запустить 2 и более приложения в 1-ой папке домена?

    @GC8 Автор вопроса
    Помучался я с этой панелью.
    В общем встроенный обработчик NodeJS не подойдет, я попробовал способы, которые описал в своем вопросе и они не работают, а конкретней если в /domain будет отсутствовать nodejs приложение (package.json), то изменить NGINX конфиг ISPmanager вам просто не даст. Будет каждый раз выводится ошибка независимо оттого правильный nginx конфиг у вас или нет: "Поле '' имеет недопустимое значение".

    + Я так же попробовал у сгенерированного конфига изменить proxy_pass

    location @fallback {
    proxy_pass http://127.0.0.1:10000; # Изменил на свой порт 5000
    }

    В результате отредактировать конфиг нельзя по причиние: "Поле '' имеет недопустимое значение". И это в обоих случаях с сокетом и портом.

    Я пытался обойти это и каким то образом получилось, но в консоли будут сыпаться ошибки каждый раз когда вы обращаетесь к своему сайту типа "не удалось найти файлы приложения nodejs и т п".

    Решение:
    Сразу говорю, что я не силен в linux и возможно какие-то пункты покажутся странными.

    1. Выдаем через root аккаунт в панели "Shell клиент" аккаунту, который владеет сайтом. В моем случае это admin.
    2. В качестве обработчика для сайта указываем: "Не используется"
    3. Заходим в панель через аккаунт admin и выбираем "Shell-клиент". После нажатия на пункт у вас должна открыться консоль.
    4. Устанавливаем nodejs (я установил через NVM) и pm2
    5. Выполняем след.код для того чтобы занести эти настройки в .bashrc

    echo 'export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"' >> ~/.bashrc
    echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc
    echo 'nvm use 18.13.0' >> ~/.bashrc


    Обратите внимание, что на последней строке я указал свою версию nodejs, вы можете ее заменить на свою.

    5. Выполняем подобный код только уже для pm2

    echo 'pm2 startup' >> ~/.bashrc

    6. Переходим в директорию вашего сайта (Например: cd www/domain) и устанавливаете свои приложения запуская их через pm2.

    7. Возвращаемся в аккаунт root и переходим в раздел "Файл конифгурации" вашего сайта, где добавляем в существующий NGINX конфиг свои настройки.
    В моем случае:

    location / {
        proxy_pass http://localhost:5000; # Порт на котором запускается node.js приложение
        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;
    }
    location /api {
        proxy_pass http://localhost:6000; # Порт на котором запускается node.js приложение
        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;
    }


    Единственный минус это при каждой авторизаций в shell клиент нужно выполнять команду: source ~/.bashrc для того чтобы нам был доступен node и pm2
    Ответ написан
    Комментировать