Для настройки совместной работы NGINX и 3X-UI (Xray) на одном сервере, чтобы и VPN, и веб-сайт функционировали одновременно, вам нужно правильно настроить конфигурацию NGINX для проксирования трафика. Вот общее руководство, как это сделать:
### 1. Убедитесь, что 3X-UI настроен правильно
Перед тем как настраивать NGINX, убедитесь, что ваш 3X-UI (Xray) работает корректно без NGINX. Протестируйте подключение через VPN, чтобы удостовериться, что всё функционирует правильно.
### 2. Настройка NGINX
Создайте или отредактируйте конфигурационный файл NGINX, например, `/etc/nginx/conf.d/vpn.conf` или `/etc/nginx/sites-available/vpn`.
```nginx
server {
listen 80; # Поддержка HTTP
server_name yourdomain.com; # Замените на ваш домен
# Обработка HTTP-запросов
location / {
return 301 https://$host$request_uri; # Редирект на HTTPS
}
}
server {
listen 443 ssl; # Поддержка HTTPS
server_name yourdomain.com; # Замените на ваш домен
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem; # Путь к вашему SSL-сертификату
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem; # Путь к вашему ключу SSL
# Настройка прокси для VPN (VLESS)
location /vless/ {
proxy_pass http://127.0.0.1:8443; # Замените на адрес и порт вашего 3X-UI
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# Настройка прокси для панели управления 3X-UI (если необходимо)
location /admin/ {
proxy_pass http://127.0.0.1:2020; # Порт панель управления 3X-UI
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# Статические файлы (если необходимо)
location /static/ {
root /path/to/static/files; # Замените путем к вашим статическим файлам
}
error_page 404 /404.html; # Настройка страницы 404
location = /404.html {
internal;
}
error_page 500 502 503 504 /50x.html; # Настройка страницы 500
location = /50x.html {
internal;
}
}
```
### 3. Проверка конфигурации и перезапуск NGINX
После создания конфигурации проверьте её на наличие ошибок и перезапустите NGINX:
```bash
sudo nginx -t # Проверка конфигурации
sudo systemctl restart nginx # Перезапуск NGINX
```
### 4. Открытие портов в файрволе
Убедитесь, что порты 80, 443 и 8443 открыты в вашем файрволе:
```bash
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 8443
```
### 5. Конфигурация клиента
Настройте клиент VPN на использование вашего домена с соответствующим маршрутом.
### 6. Тестирование
После выполнения всех шагов протестируйте подключение вашего VPN и доступ к панели управления 3X-UI через NGINX.
Если что-то не работает, внимательно проверьте логи NGINX (`/var/log/nginx/error.log`) и логи вашего контейнера 3X-UI, чтобы выявить возможные ошибки.