Кому интересно, как сделал я. В качестве прокси выступает сам vless xray, который слушает 443 порт, nginx слушает на 44443 порту. Если пришел легитимный запрос к прокси, работает vless, если любой другой, то отправляется на nginx, который показывает сайт-заглушку, либо, если в запросе указан верный путь, обращается к панеле 3x-ui (работает на порту 18443). В самой панели убираем ссылки на файлы сертификатов, панель слушает только с адреса 127.0.0.1. SNI - ваш сайт, dest: 127.0.0.1:44443
# Переадресация с HTTP (80) на HTTPS (443)
server {
listen 80;
server_name my.site;
# Перенаправление на HTTPS
return 301 https://$server_name$request_uri;
}
server {
listen 127.0.0.1:44443 ssl;
server_name my.site;
# Укажите путь к SSL-сертификатам
ssl_certificate /root/ssl/certs/fullchain.cer;
ssl_certificate_key /root/ssl/certs_ecc/my.site.key;
# Настройки SSL
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers HIGH:!aNULL:!MD5;
# Корневая директория для сайта
root /var/www/html;
index index.html index.htm;
# Обработка запросов
location / {
try_files $uri $uri/ =404;
}
# Обработка запроса к /panelpath/
location /panelpath/ {
proxy_pass http://127.0.0.1:18443;
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;
}
}