Android

Omdirigera http till https i nginx

Веб-сервер на Ubuntu с нуля: nginx, HTTP/2, brotli и HTTPS

Веб-сервер на Ubuntu с нуля: nginx, HTTP/2, brotli и HTTPS

Innehållsförteckning:

Anonim

I den här guiden kommer vi att förklara hur man omdirigerar HTTP-trafiken till HTTPS i Nginx.

Nginx uttalas “engine x” är en gratis, öppen källkod, högpresterande HTTP och reverse proxyserver som ansvarar för hanteringen av några av de största webbplatserna på Internet.

Till skillnad från HTTP, där förfrågningar och svar skickas och returneras i klartext, använder HTTPS TLS / SSL för att kryptera kommunikationen mellan klienten och servern.

Det finns många fördelar med att använda HTTPS över HTTP, till exempel:

  • All data är krypterad i båda riktningarna. Som ett resultat kan känslig information inte läsas om den fångas upp. Google Chrome och alla andra populära webbläsare kommer att markera din webbplats som säker.HTTPS låter dig använda HTTP / 2-protokollet, vilket avsevärt förbättrar webbplatsens prestanda. Google gynnar HTTPS-webbplatser. Din webbplats kommer att rankas bättre om den serveras via

Den föredragna metoden för att omdirigera HTTP till HTTPS i Nginx är att konfigurera ett separat serverblock för varje version av webbplatsen. Du bör undvika att omdirigera trafiken med if-direktivet, eftersom det kan orsaka serverns oförutsägbara beteenden.

Omdirigera HTTP till HTTPS per webbplats

För att omdirigera en enda webbplats till HTTPS öppnar du domänskonfigurationsfilen och gör följande ändringar:

server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; }

Låt oss dela upp koden rad för rad:

  • listen 80 - Serverblocket lyssnar på inkommande anslutningar på port 80 för den angivna domänen. server_name linuxize.com www.linuxize.com - Anger server_name linuxize.com www.linuxize.com domännamn. Se till att du byter ut det med ditt domännamn. return 301 - Omdirigera trafiken till HTTPS-versionen av sajten. $request_uri är den fullständiga ursprungliga begäran URI inklusive argumenten.

Vanligtvis vill du också omdirigera HTTPS www-versionen av sajten till icke-www eller vice versa. Det rekommenderade sättet att omdirigera är att skapa ett separat serverblock för både www- och icke-www-versioner.

Om du till exempel vill omdirigera HTTPS www-begäran till icke-www skulle du använda följande konfiguration:

server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name www.linuxize.com; #… other code return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name linuxize.com; #… other code }

Omdirigera alla webbplatser till HTTPS

Om alla webbplatser som är värda på servern är konfigurerade för att använda HTTPS, och du inte vill skapa ett separat HTTP-serverblock för varje webbplats kan du skapa ett enda HTTP-serverblock. Detta block kommer att omdirigera alla HTTP-förfrågningar till lämpliga

För att skapa ett enda fångst-HTTP-block som kommer att omdirigera besökarna till HTTPS-versionen av webbplatsen öppnar du Nginx-konfigurationsfilen och gör följande ändringar:

server { listen 80 default_server; listen:80 default_server; server_name _; return 301 https://$host$request_uri; }

Låt oss analysera koden rad för rad:

  • listen 80 default_server - Ställer in detta serverblock som standardblock (catch-all) för alla oöverträffade domäner. server_name _ - _ är ett ogiltigt domännamn som aldrig matchar något riktigt domännamn. return 301 - Omdirigera trafiken till motsvarande HTTPS-serverblock med statuskod 301 (flyttas permanent). Värdvariabeln $host har domännamnet på begäran.

Om till exempel besökaren öppnar http://example.com/page2 i webbläsaren kommer Nginx att omdirigera begäran till https://example.com/page2 .

Om möjligt föredrar du att skapa en omdirigering per domänbasis istället för en global HTTP- till

Slutsats

När du har installerat ett SSL-certifikat på din webbplats bör du omdirigera HTTP-trafiken till

I Nginx är det föredragna sättet att omdirigera HTTP till HTTPS att skapa en separat serverblock och utföra 301 omdirigering.

nginx