# Веб-сервер Nginx

Nginx — это веб‑сервер, используемый платформой Navixy для работы веб‑сайта. Это бесплатное программное обеспечение, разработанное для работы на Linux, а также совместимое с Windows.

<div align="center"><img src="https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-5b98c3bbd6899e24eb2ba9c9d503e67af1b1766b%2FNginx_server.png?alt=media" alt="Логотип Nginx"></div>

Nginx используется как для решения Navixy On‑premise, так и для серверов Navixy PaaS. Это единственный тип веб‑сервера, совместимость которого с платформой гарантирована. Другие веб‑серверы (Apache, IIS и т. п.) не поддерживаются.

{% hint style="info" %}
Если на вашем сервере наряду с Navixy On‑premise установлены другие веб‑приложения, вы можете использовать для этих продуктов другое программное обеспечение веб‑сервера параллельно с Nginx. В таком случае важно разделить порты для этих веб‑серверов, чтобы избежать конфликтов портов на одних и тех же портах.
{% endhint %}

## Конфигурации Nginx

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

* Домен(ы) вашего веб‑сайта
* Протокол (HTTP/HTTPS)
* SSL‑сертификаты
* Расположение содержимого веб‑сайта

И другие параметры, необходимые для правильного функционирования веб‑страницы.

### Конфигурации для Linux

Текущая версия платформы Navixy On‑premise устанавливается на Linux автоматически — либо с помощью скриптов автоустановки, либо развертыванием docker‑контейнеров. В обоих случаях конфигурация Nginx выполняется автоматически при установке, и вам не нужно вносить в неё изменения — она полностью готова к дальнейшей работе.

Если ваш экземпляр был ранее развернут в ручном режиме, ранее выполненные конфигурации остаются полностью работоспособными и не требуют изменения, если только вы не собираетесь вносить принципиальные изменения в веб‑сайт (например, сменить домен или включить/отключить SSL). Если требуются какие‑либо модификации, пожалуйста, свяжитесь с [технической поддержкой Navixy](mailto:support@navixy.com) для дальнейших инструкций.

### Конфигурации для Windows

В случае Windows вся установка и настройка платформы Navixy On‑premise выполняется вручную и не автоматизирована. Следовательно, Nginx также необходимо настраивать вручную.

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

Шаблоны расположены в `\windows\nginx` папке `navixy-package` (распакованная сборка дистрибутива платформы Navixy On‑premise). Файлы:

* `navixy.conf` - файл конфигурации для сайта платформы, открытого по HTTP, без защиты SSL.
* `navixy_ssl.conf` - файл конфигурации для защищённого SSL сайта.

Выберите файл в соответствии с тем, как вы планируете настроить веб‑сайт.

{% hint style="info" %}
Значения переменных указаны со знаком доллара и в фигурных скобках — эти символы обозначают переменную. Например:\
`${service_domain}`\
При замене переменной на реальное значение эти символы должны быть удалены. Например:\
`${service_domain}` становится `my.domain.com`
{% endhint %}

#### HTTP, без защиты SSL

Это самый простой вариант настройки веб‑сайта платформы Navixy — требуется только зарегистрированный домен(ы), указывающий на ваш сервер.

Отредактируйте файл `navixy.conf` расположенный в `C:\nginx\conf\conf.d` . Замените следующие значения:

* `${service_domain}` - домен пользовательского интерфейса при трёхдоменной установке или основной домен вашей платформы при однодоменной установке.
* `${api_domain}` - домен для API при трёхдоменной установке. При однодоменной установке удалите переменную, но сохраните остальную часть строки.
* `${panel_domain}` - домен для панели администрирования при трёхдоменной установке. При однодоменной установке удалите переменную, но сохраните остальную часть строки.

Сохраните файл и перезапустите Nginx. Ваш сайт Navixy должен быть доступен по указанным доменам.

В случае однодоменной установки панель администрирования будет доступна по пути `/panel` (например, `http://my.domain.com/panel`), а API будет доступно по пути `/api` (например, `http://my.domain.com/api`).

#### HTTPS, защищённый SSL

Для настройки защищённого SSL‑сайта вам потребуется не только зарегистрированный домен, но и действительный SSL‑сертификат и его закрытый ключ.

{% hint style="info" %}
Для получения дополнительной информации о SSL‑сертификатах, пожалуйста, ознакомьтесь с [соответствующей страницей](https://www.navixy.com/docs/on-premise/ru/on-premise/how-to-guide/configuration/ssl-certificates/ssl-certificates-installation) инструкции.
{% endhint %}

Разместите SSL‑сертификат(ы) и закрытый(е) ключ(и) в `C:\nginx\ssl` папке. Создайте её, если она не существует.

Отредактируйте файл `navixy_ssl.conf` расположенный в `C:\nginx\conf\conf.d` . Замените следующие значения:

* `${service_domain}` - домен пользовательского интерфейса при трёхдоменной установке или основной домен вашей платформы при однодоменной установке.
* `${api_domain}` - домен для API при трёхдоменной установке. При однодоменной установке удалите переменную, но сохраните остальную часть строки.
* `${panel_domain}` - домен для панели администрирования при трёхдоменной установке. При однодоменной установке удалите переменную, но сохраните остальную часть строки.
* `${certificate_name}` - имя файла сертификата с расширением. Должен быть сертификат, выпущенный для домена.
* `${private_key_name}` - имя файла закрытого ключа с расширением. Ключ должен соответствовать сертификату.

Сохраните файл и перезапустите Nginx. Ваш сайт Navixy должен быть доступен по указанным доменам.

В случае однодоменной установки панель администрирования будет доступна по пути /panel (например, `https://my.domain.com/panel`), а API будет доступно по пути /api (например, `https://my.domain.com/api`).

#### Перенаправление HTTP → HTTPS

Когда вы используете HTTPS, вы можете захотеть, чтобы ваши пользователи попадали на платформу, даже если они вводят адрес по HTTP. Для этого необходимо иметь `navixy.conf` (HTTP‑конфигурация), применённую вместе с `navixy_ssl.conf` (HTTPS‑конфигурация).

Настройте `navixy.conf` как указано выше в **разделе «HTTP»** и затем раскомментируйте следующую строку (удалите символ `#` ):

```
#return 301 https://$host$request_uri;
```

Сохраните файл и перезапустите Nginx для применения изменений. Теперь HTTP‑запросы будут перенаправляться на HTTPS.
