Files
iiEsaywebUI/nginx-proxy-manager-config.md

144 lines
7.4 KiB
Markdown
Raw Normal View History

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