Portál AbcLinuxu, 8. května 2025 13:35
Řešení dotazu:
ProxyPreserveHost On
ProxyPreserveHost On
.
Celá verze: Trochu jsem se v tom ztratil, možná jste některé informace nenapsal. Jak je to s těmi názvy? Máte teď web na veřejné adrese třeba www.example.cz
, vedle toho máte něco.example.cz
přístupné jen z vnitřní sítě a chcete to nově zpřístupnit pod adresou něco.example.cz
i z internetu?
Možné to určitě je, akorát pokud chcete z vnitřní sítě přistupovat k tomu názvu přímo a z internetu přes toho Apache, musíte mít ve vnitřní síti upravený překlad DNS, aby vracel tu vnitřní IP adresu. Pokud pak ten Apache je ve vnitřní síti, nastavte mu jako adresu toho proxovaného serveru také něco.example.cz
– přeloží si ho na vnitřní IP adresu a připojí se k tomu správnému serveru. Pokud Apache není v síti, kde by se ten doménový název překládal na vnitřní IP adresu, použijte v odkazu na cílový server jeho IP adresu a zapněte volbu ProxyPreserveHost On
, aby se cílovému serveru předávala hlavička Host z požadavku klienta (jinak tam Apache dosadí tu IP adresu, kterou volá, a cílový server nebude vědět, který virtual host má servírovat).
server { listen 80; server_name www.neco.tld; # auto přesměrování na https return 301 https://$host$request_uri; access_log /var/log/nginx/www.neco.tld.proxy.log upstreamlog; access_log /var/log/nginx/www.neco.tld.access.log; error_log /var/log/nginx/www.neco.tld.error.log; location / { proxy_pass http://192.168.1.1; include /etc/nginx/custom/proxy_api.conf; } }Kde v proxy_api.conf je default v podobě :
real_ip_header X-Real-IP; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 30; proxy_send_timeout 20m; proxy_read_timeout 20m; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; # for websocket working : proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_http_version 1.1;Zdar Max
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.