Files
iiEsaywebUI/nginx-proxy-manager-config.md
2026-02-19 18:12:09 +00:00

144 lines
7.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Конфигурация Nginx Proxy Manager для odo.iieasy.ru
## Настройка прокси для Open WebUI
### Шаг 1: Создание Proxy Host в Nginx Proxy Manager
1. Войдите в Nginx Proxy Manager (обычно `http://your-server-ip:81`)
2. Перейдите в **Proxy Hosts****Add Proxy Host**
### Шаг 2: Настройка Details
- **Domain Names**: `odo.iieasy.ru`
- **Scheme**: `http`
- **Forward Hostname/IP**: `open-webui` (имя контейнера Docker) или `localhost`
- **Forward Port**: `3001` (изменено с 3000)
- **Cache Assets**: Включено (опционально)
- **Block Common Exploits**: Включено
- **Websockets Support**: **ВКЛЮЧЕНО** (важно для Open WebUI!)
### Шаг 3: Настройка SSL
**ВАЖНО:** SSL сертификат должен быть настроен ДО того, как вы сможете открыть сайт по HTTPS.
#### Вариант A: Использование Let's Encrypt (рекомендуется)
1. В Nginx Proxy Manager перейдите в **SSL Certificates****Add SSL Certificate**
2. Выберите **Let's Encrypt**
3. Заполните:
- **Domain Names**: `odo.iieasy.ru` (можно добавить несколько через запятую)
- **Email Address**: Ваш email (для уведомлений об истечении сертификата)
- **Agree to Let's Encrypt Terms**: Включено
- **Use a DNS Challenge**: Обычно НЕ нужно (используется HTTP challenge)
4. Нажмите **Save**
5. Дождитесь создания сертификата (может занять 1-2 минуты)
**Требования для Let's Encrypt:**
- Домен `odo.iieasy.ru` должен указывать на IP вашего сервера (A-запись в DNS)
- Порт 80 должен быть доступен из интернета (для HTTP challenge)
- Nginx Proxy Manager должен быть доступен на порту 80
#### Вариант B: Использование существующего сертификата
Если у вас уже есть SSL сертификат:
1. **SSL Certificates****Add SSL Certificate****Custom**
2. Вставьте содержимое файлов:
- **Certificate**: содержимое `.crt` или `.pem` файла
- **Private Key**: содержимое `.key` файла
3. Нажмите **Save**
#### Вариант C: Временное отключение SSL (только для тестирования)
Если нужно быстро проверить работу без SSL:
1. В Proxy Host настройках убедитесь, что SSL не включен
2. Используйте HTTP вместо HTTPS: `http://odo.iieasy.ru`
### Шаг 4: Применение SSL к Proxy Host
После создания SSL сертификата:
1. Вернитесь к вашему Proxy Host для `odo.iieasy.ru`
2. Перейдите на вкладку **SSL**
3. Выберите созданный сертификат в поле **SSL Certificate**
4. Включите:
- **Force SSL**: Включено (перенаправляет HTTP на HTTPS)
- **HTTP/2 Support**: Включено
- **HSTS Enabled**: Включено (опционально)
- **HSTS Subdomains**: Включено (опционально, если используете поддомены)
5. Нажмите **Save**
### Шаг 5: Настройка Advanced (Custom Nginx Configuration)
**ВАЖНО:** Nginx Proxy Manager автоматически управляет большинством настроек. Custom Configuration обычно НЕ нужна и может вызвать ошибки 500.
**Оставьте поле Custom Nginx Configuration ПУСТЫМ**, если все работает без него.
Если все же нужны дополнительные настройки (только при проблемах), добавьте минимальную конфигурацию:
```nginx
# Увеличение размера тела запроса для загрузки файлов (если нужно)
client_max_body_size 100M;
# Увеличенные таймауты (только если есть проблемы с таймаутами)
proxy_read_timeout 300s;
```
**Но лучше оставить пустым** - Nginx Proxy Manager сам настроит WebSocket, заголовки и другие параметры через интерфейс.
### Шаг 6: Если используется Docker сеть
Если Nginx Proxy Manager работает в той же Docker сети, что и Open WebUI:
1. В **Forward Hostname/IP** укажите: `open-webui` (имя контейнера)
2. В **Forward Port** укажите: `8080` (внутренний порт контейнера)
Если Nginx Proxy Manager работает на хосте:
1. В **Forward Hostname/IP** укажите: `localhost` или `127.0.0.1`
2. В **Forward Port** укажите: `3001` (порт на хосте)
## Проверка работы
После настройки проверьте:
1. Откройте `https://odo.iieasy.ru` в браузере
2. Проверьте логи Nginx Proxy Manager при ошибках
3. Проверьте логи Open WebUI: `docker compose logs open-webui`
## Устранение проблем
### ERR_SSL_UNRECOGNIZED_NAME_ALERT
Эта ошибка означает, что SSL сертификат не настроен или не соответствует домену.
**Решение:**
1. Проверьте, что SSL сертификат создан в Nginx Proxy Manager
2. Убедитесь, что сертификат применен к Proxy Host (вкладка SSL)
3. Проверьте, что домен `odo.iieasy.ru` указан в сертификате
4. Если используете Let's Encrypt, проверьте:
- DNS A-запись для `odo.iieasy.ru` указывает на IP сервера
- Порт 80 доступен из интернета
- Домен не заблокирован файрволом
**Временное решение для тестирования:**
- Отключите SSL в Proxy Host
- Используйте HTTP: `http://odo.iieasy.ru`
- После настройки SSL включите обратно
### Ошибка 502 Bad Gateway
- Убедитесь, что контейнер `open-webui` запущен: `docker ps | grep open-webui`
- Проверьте, что порт 3001 доступен: `curl http://localhost:3001`
- Проверьте логи: `docker compose logs open-webui`
### WebSocket не работает
- Убедитесь, что **Websockets Support** включен в Nginx Proxy Manager
- **НЕ добавляйте** WebSocket настройки в Custom Configuration - они конфликтуют с автоматическими настройками NPM
### Медленная загрузка
- Проверьте логи: `docker compose logs open-webui`
- Убедитесь, что контейнер Open WebUI работает нормально
- Если нужны большие файлы, добавьте только `client_max_body_size 100M;` в Custom Configuration (но лучше оставить пустым)