Настройка хостинга подкаталогов с использованием Nginx

Узнайте, как разместить свой справочный центр в подкаталоге, например, /help, используя обратный прокси-сервер Nginx.

1 мин чтения

Вы можете использовать Nginx для обслуживания вашего справочного центра Notiondesk из подкаталога вашего основного домена.

Например, вместо использования поддомена типа help.yourdomain.com, вы можете сделать свой справочный центр доступным по следующему адресу:

  • yourdomain.com/help
  • yourdomain.com/docs
  • yourdomain.com/support

Такая конфигурация полезна, если ваш основной веб-сайт размещен на VPS, выделенном сервере или в инфраструктуре, где Nginx уже используется в качестве веб-сервера или обратного прокси.

Посетители остаются на вашем основном домене, а контент справочного центра находится за выбранным подпутем.

Прежде чем начать

Перед настройкой подкаталога с помощью Nginx убедитесь, что у вас есть:

  • Доступ к серверу, на котором размещен ваш основной веб-сайт.
  • Доступ к конфигурации Nginx
  • Подпуть, который вы хотите использовать для своего справочного центра, например, /help, /docs или /support

Также вам следует знать, какой блок Nginx server отвечает за домен вашего основного веб-сайта. Именно сюда вы добавите конфигурацию обратного прокси Notiondesk.

Включите размещение подпутей в Notiondesk

Сначала включите хостинг подпутей в панели управления Notiondesk.

  1. Откройте свою панель управления Notiondesk
  1. Перейдите к Settings > General
  1. Прокрутите до раздела Domains
  1. Включите переключатель Subpath
  1. Сохраните изменения
  1. Скопируйте сгенерированную конфигурацию Nginx.

Notiondesk генерирует конфигурацию с правильными значениями для вашего центра поддержки, включая домен вашего центра поддержки Notiondesk и выбранный подпуть.

Добавьте конфигурацию Nginx.

Далее добавьте сгенерированную конфигурацию Nginx в конфигурацию вашего веб-сервера.

Откройте конфигурационный файл Nginx, отвечающий за домен вашего основного веб-сайта, и найдите нужный блок server.

Блок server должен обслуживать ваш основной домен, например:

Вставьте сгенерированные блоки Notiondesk location внутрь этого блока server.

Конфигурация должна обрабатывать:

server {
    server_name yourdomain.com;

    # Your existing website configuration
}
  • Точный подпуть к центру поддержки, например, /help
  • Вложенные страницы справочного центра, например, /help/
  • Notiondesk внутренние маршруты, например /_nd/

Пример использования обратного прокси-сервера Nginx

Вот пример конфигурации обратного прокси-сервера Nginx.

В этом примере используется:

location = /help {
    proxy_pass https://your-help-center.notiondesk.help;
    proxy_ssl_server_name on;
    proxy_ssl_name your-help-center.notiondesk.help;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Site-Path-Prefix /help;
}

location ^~ /help/ {
    proxy_pass https://your-help-center.notiondesk.help;
    proxy_ssl_server_name on;
    proxy_ssl_name your-help-center.notiondesk.help;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Site-Path-Prefix /help;
}

location ^~ /_nd/ {
    proxy_pass https://your-help-center.notiondesk.help;
    proxy_ssl_server_name on;
    proxy_ssl_name your-help-center.notiondesk.help;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
}
  • your-help-center.notiondesk.help как домен справочного центра Notiondesk
  • /help в качестве выбранного подпути

В вашей конфигурации могут использоваться другие значения.

Проверьте и перезагрузите Nginx.

После добавления конфигурации протестируйте её перед перезагрузкой.

Бегать:

Если тест пройден успешно, перезагрузите Nginx:

В зависимости от настроек вашего сервера команда перезагрузки может отличаться.

После перезагрузки Nginx откройте свой справочный центр по выбранному вами пути. Убедитесь, что главная страница справочного центра загружается корректно.

nginx -t
sudo systemctl reload nginx

Связанные статьи

Эта страница была полезной?