How to Setup NGINX Reverse Proxy on CentOS with SSL
Obsah:
- Předpoklady
- Používání Nginx jako reverzního proxy
- Předávání záhlaví žádosti
- Konfigurace Nginxu jako reverzního proxy serveru bez proxy serveru proxy
- Běžné možnosti Nginx Reverse Proxy
- Závěr
Reverzní proxy je služba, která přijímá požadavek klienta, odešle požadavek na jeden nebo více proxy serverů, vyvolá odpověď a doručí odpověď serveru klientovi.
Vzhledem ke svému výkonu a škálovatelnosti je NGINX často používán jako reverzní proxy pro servery HTTP a non-HTTP. Typickou konfigurací reverzního proxy je umístit Nginx před Node.js, Python nebo Java aplikace.
Použití Nginx jako reverzního proxy serveru vám přináší několik dalších výhod:
- Load Balancing - Nginx může provádět vyrovnávání zatížení a distribuovat požadavky klientů na proxy servery, což zvyšuje výkon, škálovatelnost a spolehlivost. Ukládání do mezipaměti - S Nginx jako reverzním proxy serverem můžete ukládat do mezipaměti předem vykreslené verze stránek a urychlit tak načítání stránek. Funguje tak, že ukládá do mezipaměti obsah přijatý z odpovědí serverů proxy a používá jej k tomu, aby reagoval na klienty bez nutnosti kontaktovat server proxy se stejným obsahem pokaždé. Ukončení SSL - Nginx může sloužit jako koncový bod SSL pro spojení s klienty. Zpracovává a dešifruje příchozí připojení SSL a šifruje odpovědi serveru proxy. Komprese - Pokud server proxy neodesílá komprimované odpovědi, můžete nakonfigurovat Nginx tak, aby komprimoval odpovědi před jejich odesláním klientům. Zmírnění útoků DDoS - Můžete omezit příchozí požadavky a počet připojení na jednu IP adresu na hodnotu typickou pro běžné uživatele. Nginx také umožňuje blokovat nebo omezit přístup na základě umístění klienta a hodnoty záhlaví požadavků, například „User-Agent“ a „Referer“.
Tento článek popisuje kroky potřebné pro konfiguraci Nginx jako reverzního proxy.
Předpoklady
Předpokládáme, že máte Nginx nainstalovaný na serveru Ubuntu, CentOS nebo Debian.
Používání Nginx jako reverzního proxy
Chcete-li nakonfigurovat Nginx jako reverzní proxy k HTTP serveru, otevřete konfigurační soubor blokování serveru na doméně a určete umístění a proxy server uvnitř:
server { listen 80; server_name www.example.com example.com; location /app { proxy_pass http://127.0.0.1:8080; } }
Adresa URL serveru proxy je nastavena pomocí direktivy
proxy_pass
a může použít
HTTP
nebo
HTTPS
jako protokol, doménové jméno nebo IP adresu a volitelný port a URI jako adresu.
Výše uvedená konfigurace říká Nginxu, aby předal všechny požadavky do umístění
/app
proxy serveru na adrese
http://127.0.0.1:8080
.
/etc/nginx/sites-available
, zatímco v CentOS v adresáři
/etc/nginx/conf.d
.
Abychom lépe ilustrovali, jak
proxy_pass
směrnice o
location
a
proxy_pass
, vezměme následující příklad:
server { listen 80; server_name www.example.com example.com; location /blog { proxy_pass http://node1.com:8000/wordpress/; } }
Pokud návštěvník přistoupí na
http://example.com/blog/my-post
, Nginx tuto žádost proxy na
http://node1.com:8000/wordpress/my-post
.
Pokud adresa serveru proxy obsahuje URI (
/wordpress/
), URI požadavku, který je předán serveru proxy, je nahrazen URI specifikovaným ve směrnici. Pokud je adresa serveru proxy zadána bez identifikátoru URI, je identifikátor URI úplného požadavku předán serveru proxy.
Předávání záhlaví žádosti
Když Nginx požadavek proxy, automaticky definuje dvě pole záhlaví v proxy požadavcích od klienta,
Host
a
Connection
a odstraní prázdné záhlaví.
Host
je nastaven na proměnnou
$proxy_host
a
Connection
je nastaveno na blízko.
Chcete-li upravit nebo nastavit záhlaví pro proxy připojení, použijte direktivu
proxy_set_header
následovanou hodnotou záhlaví. Zde najdete seznam všech dostupných záhlaví požadavků a jejich povolených hodnot. Pokud chcete zabránit předávání záhlaví na proxy server, nastavte jej na prázdný řetězec.
V následujícím příkladu změníme hodnotu pole záhlaví
Host
na
$host
a odstraníme pole záhlaví
Accept-Encoding
nastavením jeho hodnoty na prázdný řetězec.
location / { proxy_set_header Host $host; proxy_set_header Accept-Encoding ""; proxy_pass http://localhost:3000; }
Kdykoli změníte konfigurační soubor, musíte restartovat službu Nginx, aby se změny projevily.
Konfigurace Nginxu jako reverzního proxy serveru bez proxy serveru proxy
Chcete-li nakonfigurovat Nginx jako reverzní proxy na proxy server bez proxy, můžete použít následující směrnice:
-
fastcgi_pass
- reverzní proxy k serveru FastCGI.uwsgi_pass
- reverzní proxy k serveru uwsgi.scgi_pass
- reverzní proxy k SCGI serveru.memcached_pass
- reverzní proxy k serveru Memcached.
Jedním z nejčastějších příkladů je použití Nginx jako reverzního proxy pro PHP-FPM:
server { #… other directives location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.2-fpm.sock; } }
Běžné možnosti Nginx Reverse Proxy
Poskytování obsahu přes HTTPS se dnes stalo standardem. V této části vám ukážeme příklad konfigurace HTTPS Nginx pro reverzní proxy včetně doporučených parametrů a záhlaví Nginx proxy.
location/ { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_cache_bypass $http_upgrade; 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; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; }
-
proxy_http_version 1.1
- Definuje verzi protokolu HTTP pro proxy, ve výchozím nastavení je nastavena na 1, 0. Pro Websockets akeepalive
připojení musíte použít verzi 1.1.proxy_cache_bypass $http_upgrade
- Nastavuje podmínky, za kterých nebude odpověď převzata z mezipaměti.Upgrade $http_upgrade
aConnection "upgrade"
- Tato pole záhlaví jsou vyžadována, pokud vaše aplikace používáUpgrade $http_upgrade
.Host $host
- Proměnná$host
v následujícím pořadí priority obsahuje: název hostitele z řádku požadavku nebo název hostitele z pole hlavičky požadavkuHost
, nebo název serveru odpovídající požadavku.X-Real-IP $remote_addr
-X-Real-IP $remote_addr
skutečnou vzdálenou IP adresu návštěvníka na proxy server.X-Forwarded-For $proxy_add_x_forwarded_for
- Seznam obsahující IP adresy všech serverů, přes které byl klient proxy připojen.X-Forwarded-Proto $scheme
- Při použití uvnitř bloku serveru HTTPS je každá odpověď HTTP ze serveru proxy přepsána doX-Forwarded-Host $host
- Definuje původního hostitele, který požaduje klient.X-Forwarded-Port $server_port
- Definuje původní port požadovaný klientem.
Závěr
Naučili jste se, jak používat Nginx jako reverzní proxy. Také jsme vám ukázali, jak předat další parametry serveru a jak upravit a nastavit různá pole záhlaví v proxy požadavcích.
nginxKonfigurace nastavení serveru proxy v systému Windows 10 / 8.1

Windows 10 / 8.1 usnadňuje nastavení nebo konfiguraci nastavení serveru proxy. Místní server Proxy Server může zlepšit propustnost vašeho širokopásmového připojení a poskytnout ochranu před malwarem.
Uzamčeno z Plex Serveru a nastavení serveru? Zde je oprava!

Pokud jste uzamčeni z Plex Serveru a nastavení serveru, i když je vaše uživatelské jméno a heslo správné, pak tento příspěvek vám pomůže vyřešit problém v systémech Windows i Linux. Chcete-li znovu získat přístup, použijte tyto návrhy.
Správa a zvýšení rychlosti procházení webu změnou nastavení serveru DNS

Zvýšení rychlosti prohlížení webu změnou serveru DNS, nastavení nebo poskytovatele v systému Windows