Add project and deployment instruction (docs/DEPLOYMENT.md)
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
143
nginx-proxy-manager-config.md
Normal file
143
nginx-proxy-manager-config.md
Normal file
@@ -0,0 +1,143 @@
|
||||
# Конфигурация 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 (но лучше оставить пустым)
|
||||
Reference in New Issue
Block a user