Мне нужно, чтобы один домен вел на несколько других доменов, которые имеют одинаковый функционал. Если я проксирую прописав единственный домен вручную в "proxy_set_header Host" и в "proxy_ssl_name", то все работает, если беру домен из балансера с указанием порта (через $proxy_host), то получаю ошибку, что запрошенный инстанс не существует (а например на сайтах, которые находятся под cloudflare, просто получаю 404). Собственно, сам вопрос, как я могу брать домен из балансера, но так, чтобы он проксировался без ошибок? Балансер с ручной установкой значений (работает) upstream vot_worker { # server vot-worker.onrender.com weight=3 down fail_timeout=30s; server vot.deno.dev:443; # server vot-new.toil-dump.workers.dev down weight=1 fail_timeout=30s; } server { listen 443 ssl http2; listen [::]:443 ssl http2; ssl_certificate /etc/letsencrypt/live/<my_domain>/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/<my_domain>/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # Bad Bot Blocker include /etc/nginx/bots.d/ddos.conf; include /etc/nginx/bots.d/blockbots.conf; server_name <my_domain>; location / { proxy_pass https://vot_worker; proxy_set_header Host "vot.deno.dev"; 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; proxy_http_version 1.1; proxy_buffering off; proxy_buffer_size 16k; proxy_busy_buffers_size 24k; proxy_buffers 64 4k; proxy_ssl_server_name on; proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2; proxy_ssl_name "vot.deno.dev"; } } Code upstream vot_worker { # server vot-worker.onrender.com weight=3 down fail_timeout=30s; server vot.deno.dev:443; # server vot-new.toil-dump.workers.dev down weight=1 fail_timeout=30s; } server { listen 443 ssl http2; listen [::]:443 ssl http2; ssl_certificate /etc/letsencrypt/live/<my_domain>/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/<my_domain>/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # Bad Bot Blocker include /etc/nginx/bots.d/ddos.conf; include /etc/nginx/bots.d/blockbots.conf; server_name <my_domain>; location / { proxy_pass https://vot_worker; proxy_set_header Host "vot.deno.dev"; 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; proxy_http_version 1.1; proxy_buffering off; proxy_buffer_size 16k; proxy_busy_buffers_size 24k; proxy_buffers 64 4k; proxy_ssl_server_name on; proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2; proxy_ssl_name "vot.deno.dev"; } } Балансер с установкой значений через $proxy_host (работает не правильно) upstream vot_worker { # server vot-worker.onrender.com weight=3 down fail_timeout=30s; server vot.deno.dev:443; # server vot-new.toil-dump.workers.dev down weight=1 fail_timeout=30s; } server { listen 443 ssl http2; listen [::]:443 ssl http2; ssl_certificate /etc/letsencrypt/live/<my_domain>/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/<my_domain>/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # Bad Bot Blocker include /etc/nginx/bots.d/ddos.conf; include /etc/nginx/bots.d/blockbots.conf; server_name <my_domain>; location / { proxy_pass https://vot_worker; proxy_set_header Host $proxy_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; proxy_http_version 1.1; proxy_buffering off; proxy_buffer_size 16k; proxy_busy_buffers_size 24k; proxy_buffers 64 4k; proxy_ssl_server_name on; proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2; proxy_ssl_name $proxy_host; } } Code upstream vot_worker { # server vot-worker.onrender.com weight=3 down fail_timeout=30s; server vot.deno.dev:443; # server vot-new.toil-dump.workers.dev down weight=1 fail_timeout=30s; } server { listen 443 ssl http2; listen [::]:443 ssl http2; ssl_certificate /etc/letsencrypt/live/<my_domain>/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/<my_domain>/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # Bad Bot Blocker include /etc/nginx/bots.d/ddos.conf; include /etc/nginx/bots.d/blockbots.conf; server_name <my_domain>; location / { proxy_pass https://vot_worker; proxy_set_header Host $proxy_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; proxy_http_version 1.1; proxy_buffering off; proxy_buffer_size 16k; proxy_busy_buffers_size 24k; proxy_buffers 64 4k; proxy_ssl_server_name on; proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2; proxy_ssl_name $proxy_host; } } Путь по которому проверяю работоспособность (если нужен) /video-translation/audio-proxy/c3a7d3378c314033969dc9e3198964b5.mp3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=TUjU1hKqZCA89kq9Wfr3/20240225/us-east-1/s3/aws4_request&X-Amz-Date=20240225T165740Z&X-Amz-Expires=7200&X-Amz-SignedHeaders=host&X-Amz-Signature=73dde9683c5b1ad277d9227b1bb8bf388f16d4a1169e818dc08f8ae37851764 Если всё проксируется правильно, то отобразиться Request has expired (проксирование работает), в противном случае показывается просто заглушка от deno, что инстанс не найден (проксирование работает не правильно)
Скорее всего, вся проблема в том, что ты используешь $proxy_host (который по умолчанию, кстати) в и хост записывается с proxy_pass, где у тебя стоит "https://vot_worker", то есть хост = vot_worker. Ну и принимающий сервер не понимает, что это за хост. Чтобы это исправить нужно использовать $host, так будет браться именно хост твоего ****** сервера. Если нужен хост именно с твоих ориджинов, то есть тех хостов, которые находятся "upstream vot_worker", тогда, как я знаю, можно их достать через дабл проксинг.