Android

I-redirect ang http sa https sa nginx

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

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

Talaan ng mga Nilalaman:

Anonim

Sa gabay na ito, ipapaliwanag namin kung paano i-redirect ang trapiko ng HTTP patungo sa HTTPS sa Nginx.

Ang bininx ay binibigkas na "engine x" ay isang libre, bukas na mapagkukunan, mataas na pagganap na HTTP at baligtarin ang proxy server na responsable sa paghawak ng pag-load ng ilan sa mga pinakamalaking site sa Internet.

Hindi tulad ng HTTP, kung saan ang mga kahilingan at tugon ay ipinadala at bumalik sa plaintext, ginagamit ng HTTPS ang TLS / SSL upang i-encrypt ang komunikasyon sa pagitan ng kliyente at server.

Maraming mga pakinabang ng paggamit ng HTTPS sa HTTP, tulad ng:

  • Ang lahat ng data ay naka-encrypt sa parehong direksyon. Bilang resulta, hindi mababasa ang sensitibong impormasyon kung maiinteresan.Google Chrome at lahat ng iba pang tanyag na browser ay markahan ang iyong website bilang ligtas. Pinapayagan ka ngHTTPS na gamitin ang HTTP / 2 protocol, na makabuluhang nagpapabuti sa pagganap ng site.Google pabor sa mga website ng HTTPS. Ang iyong site ay mas mahusay na ranggo kung ihahatid sa pamamagitan ng

Ang ginustong pamamaraan upang mai-redirect ang HTTP sa HTTPS sa Nginx ay upang mai-configure ang isang hiwalay na bloke ng server para sa bawat bersyon ng site. Dapat mong iwasan ang muling pag-redirect ng trapiko gamit ang kung direktiba, dahil maaaring magdulot ito ng hindi mapag-aalinlangang pag-uugali ng server.

I-redirect ang HTTP sa HTTPS bawat Site

Upang mai-redirect ang isang solong website sa HTTPS buksan ang file ng pagsasaayos ng domain at gawin ang mga sumusunod na pagbabago:

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

Ihiwalay natin ang linya ng code ayon sa linya:

  • listen 80 - Ang bloke ng server ay makinig sa mga papasok na koneksyon sa port 80 para sa tinukoy na domain. server_name linuxize.com www.linuxize.com - Tinutukoy ang mga pangalan ng domain block ng server. Tiyaking pinalitan mo ito ng iyong domain name. return 301 - I-redirect ang trapiko sa bersyon ng HTTPS ng site. Ang variable na $request_uri ay ang buong orihinal na kahilingan sa URI kabilang ang mga argumento.

Karaniwan, nais mo ring i-redirect ang bersyon ng site ng HTTPS www sa non-www o kabaligtaran. Ang inirekumendang paraan upang gawin ang pag-redirect ay upang lumikha ng isang hiwalay na bloke ng server para sa parehong mga bersyon ng www at non-www.

Halimbawa, upang mai-redirect ang mga kahilingan ng HTTPS www sa hindi www, gagamitin mo ang sumusunod na pagsasaayos:

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 }

I-redirect ang Lahat ng mga Site sa HTTPS

Kung ang lahat ng mga website na naka-host sa server ay na-configure upang magamit ang HTTPS, at hindi mo nais na lumikha ng isang hiwalay na bloke ng HTTP server para sa bawat site maaari kang lumikha ng isang solong catch-all block ng server ng HTTP. Ang bloke na ito ay magre-redirect ng lahat ng mga kahilingan sa HTTP sa naaangkop na mga bloke ng

Upang lumikha ng isang solong catch-all HTTP block na magre-redirect ng mga bisita sa bersyon ng HTTPS ng site buksan ang file ng pagsasaayos ng Nginx at gawin ang mga sumusunod na pagbabago:

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

Suriin natin ang linya ng code ayon sa linya:

  • listen 80 default_server - Itinatakda ng bloke ng server na ito bilang default (catch-all) block para sa lahat ng mga hindi magkatulad na mga domain. server_name _ - _ ay isang hindi wastong pangalan ng domain na hindi tumugma sa anumang tunay na pangalan ng domain. return 301 - I-redirect ang trapiko sa kaukulang block ng HTTPS server na may status code 301 (Moving Permanently). Hawak ng variable ng $host ang domain name ng kahilingan.

Halimbawa, kung bisitahin ng bisita ang http://example.com/page2 sa browser, i-redirect ni Nginx ang kahilingan sa https://example.com/page2 .

Kung posible, mas gusto ang paglikha ng isang redirection sa isang per-domain na batayan sa halip na isang global na HTTP sa paglalagay ng

Konklusyon

Kapag mayroon kang isang SSL sertipiko na naka-install sa iyong website, dapat mong i-redirect ang trapiko ng HTTP sa

Sa Nginx, ang ginustong paraan upang mai-redirect ang HTTP sa HTTPS ay upang lumikha ng isang hiwalay na mga bloke ng server at magsagawa ng 301 redirect.

nginx