Xray VLESS(через 3X-UI) и Nginx запущены на сервере. Сайт - в докере, порт - 5000:8080.
Сделал такие конфиги:
nginx.conf
load_module /usr/lib/nginx/modules/ngx_stream_module.so;
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
sendfile on;
tcp_nopush on;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
server {
listen 80;
server_name media-random.ru;
return 301 https://$server_name$request_uri;
}
}
stream {
include /etc/nginx/stream-enabled/*.conf;
}
proxy.conf
map $ssl_preread_server_name $sni_name {
hostnames;
www.ferzu.com xray;
media-random.ru www;
*.media-random.ru www;
default xray;
}
upstream xray {
server 127.0.0.1:50100;
}
upstream www {
server 127.0.0.1:5000;
}
server {
listen 443;
proxy_pass $sni_name;
ssl_certificate /etc/ssl/media-random.crt;
ssl_certificate_key /etc/ssl/media-random.key;
ssl_preread on;
}
При таких настройках Xray работает и трафик через него ходит. Но попытка подключиться к
https://media-random.ru/ приводит к ERR_SSL_PROTOCOL_ERROR.
Если добавить
listen 443 ssl;
, то сайт начнет отвечать
400 Bad Request
The plain HTTP request was sent to HTTPS port
, а перенаправление трафика вообще не будет работать.
Была идея что мне надо перекидывать запросы к сайту на какой-то порт
upstream www { server 127.0.0.1:xxxxx;}
, там включать ssl и уже оттуда перенаправлять на 127.0.0.1:5000, но осуществить правильно не удалось. Это
Xray-examples смотрел, не разобрался как сделать.