# Конфигурация 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 (но лучше оставить пустым)