Веб-сервер на Ubuntu с нуля: nginx, HTTP/2, brotli и HTTPS
Talaan ng mga Nilalaman:
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_uriay 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$hostang 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"Ang bawat tao'y nagsasalita tungkol sa kung paano mga consumer hindi alam kung ano ang nangyayari, at kung alam nila kung ano ang nangyayari, sila ay magiging horrified, "sabi ni Rubin. "Ang dahilan kung bakit hindi nila alam ang tungkol dito ay hindi sila nag-aalinlangan upang malaman ang tungkol dito, at ang dahilan kung bakit hindi sila nag-aalinlangan upang malaman ang tungkol dito ay dahil wala nang masama ang nangyari."
[Karagdagang pagbabasa: Ang pinakamahusay TV streaming services]
Pagkakaiba sa pagitan ng HTTP at HTTPS Protocol
Ebolusyon ng HTTP, Paano gumagana ang HTTPS at ang pagkakaiba sa pagitan ng HTTP at HTTPS sa mga simpleng termino na ipinaliwanag. Ang HTTP Vs HTTPS o Hypertext Transfer Protocol sa paglipas ng Secure Socket Layer ay tinalakay.
Lumipat sa mas ligtas na pamantayang https ay nagsisimula sa pamamagitan ng pagpatay sa http
Ang dating pamantayan ng HTTP ay dapat mamatay upang ang HTTPS ay maging de facto standard ng Internet. Nagsimula ang paglipat, ngunit malayo ito sa kumpleto.







