Nginx Omdirigera HTTP till HTTPS

Nginx Redirect Http Https



Nginx, uttalas som Engine x, är en gratis, open-source Linux-baserad högpresterande webb och en omvänd proxyserver som är ansvarig för att hantera och hantera belastningen på den största webbplatsens trafik på internet. Nginx är ett kraftfullt omdirigeringsverktyg som enkelt kan konfigureras på ditt system för att omdirigera den mindre säkra eller okrypterade HTTP -webbtrafiken till en krypterad och säker HTTPS -webbserver. Om du är systemadministratör eller utvecklare använder du Nginx -servern regelbundet.

I den här artikeln kommer vi att arbeta med hur du omdirigerar webbtrafiken från HTTP till en säker HTTPS i Nginx.







Svaren och förfrågningarna returneras i form av klartext i HTTP, medan HTTPS använder SSL/TLS för att kryptera kommunikationen mellan klienten och serversystemet. Av många skäl används därför HTTPS över HTTP, som listas nedan:



  • All data mellan klient-servern i båda riktningarna är krypterad. Vem som helst kan dock inte komma åt känslig information om den fångas upp.
  • När du använder HTTPS kommer Google Chrome och andra webbläsare att betrakta din webbplatsdomän som säker.
  • HTTPS -versionen förbättrar din angivna webbplatsprestanda med HTTP/2 -protokollet.
  • Om du betjänar din webbplatsdomän via HTTPS kommer webbplatsen att rankas bättre på Google, eftersom den gynnar alla HTTPS -säkrade webbplatser.

Det föredras att omdirigera trafik -HTTP till HTTPS i Nginx i ett separat serverblock för varje webbplatsversion. Det rekommenderas också att undvika omdirigering av trafik med if if riktning som kan orsaka ovanligt beteende hos servern.



Omdirigera all trafik från HTTP till HTTPS

Lägg till följande ändringar i Nginx -konfigurationsfilen för att omdirigera all trafik från HTTP till HTTPS -version:





server {
lyssna 80default_server;
server namn _;
lämna tillbaka 301https: //$ värd$ request_uri;
}

Nedan har vi utarbetat varje ovan nämnd term:

Lyssna 80 default_server - detta kommer att signalera ditt system som fångar all HTTP -trafik på Port 80.
Server_name _ - det är domänen som kommer att matcha med alla värdnamn.



Returnera 301 https: // $ host $ request_uri - detta berättar för dina sökmotorer som omdirigerar det permanent. Den anger att variabeln $ host har domännamnen.

När du har ändrat konfigurationsinställningarna måste du ladda om Nginx -tjänsterna på ditt system. Så ladda om dina Nginx -tjänster med följande kommando:

$sudosystemctl ladda om nginx

Omdirigera HTTP till HTTPS -version för specificerad domän i Nginx

När du har installerat SSL -certifikatet på din domän har du två serverblock -alternativ för den här domänen. Ett block är för att HTTP -versionen ska lyssna på port 80, och den andra versionen är HTTPS på port 443. Men för att omdirigera en enda webbplatsdomän från HTTP till HTTPS måste du öppna Nginx -konfigurationen. Du kan hitta denna konfigurationsfil i katalogen/etc/nginx/sites-available. Om du inte hittade den här filen kan du i alla fall söka efter den med /etc/nginx/nginx.conf,/usr/local/nginx/conf eller/usr/local/etc/nginx och sedan utföra följande ändringar i den här filen:

server {
lyssna 80;
server namn domain-name.com www.domain-name.com;
lämna tillbaka 301https://domän-namn.com$ request_uri;
}

Låt oss förstå koden ovan rad för rad.
Lyssna 80 - med port 80 lyssnar servern efter alla inkommande anslutningar som anges av domänen.

Server_name domain-name.com www.domain-name.com-det anger domännamnen. Så ersätt det med ditt webbplatsdomän som du vill omdirigera.

Returnera 301 https: //domain-name.com$request_uri-det flyttar trafiken till HTTPS-versionen av webbplatsen. Variabeln $ request_uri används för den fullständiga ursprungliga begäran URI där argument också ingår.

Med följande metod kan du omdirigera trafik till HTTPS www-versionen till den icke-www-versionen av webbplatsen. Det rekommenderas att skapa en omdirigering i ett separat serverblock för både versioner som inte är www och www.

Låt oss förklara med ett exempel. Om du vill omdirigera www HTTPS-begäranden till versionen som inte är www, följer du följande konfiguration:

server {
lyssna 80;
server namn domain-name.com www.domain-name.com;
lämna tillbaka 301https://domän-namn.com$ request_uri;
}
server {
lyssna 443 ssl http2;
server namn www.domän-namn.com;
#. . . annan kod
lämna tillbaka 301https://domän-namn.com$ request_uri;
}
server {
lyssna 443 ssl http2;
server namn domännamn.com;

#. . . annan kod
}

Ersätt domännamnet med din domän, som www.linuxhint.com.

Slutsats

Vi har diskuterat hur man omdirigerar trafik från HTTP -version till HTTPS på Nginx -servern. Genom att ändra Nginx -konfigurationsfilinställningen kan du enkelt omdirigera trafik till HTTPS antingen för en angiven domän eller omdirigera alla. Denna metod, som vi har nämnt i den här artikeln, kan hjälpa dig att göra din webbplats säkrare genom att göra ändringar i användarupplevelsen.