Nginx Redirect HTTP sa HTTPS

Nginx Redirect Http Https



Ang Nginx, binibigkas bilang Engine x, ay isang libre, open-source na batay sa Linux na may mataas na pagganap na web at isang reverse proxy server na responsable para sa pamamahala at paghawak ng pagkarga ng pinakamalaking trapiko sa mga website sa internet. Ang Nginx ay isang malakas na tool sa pag-redirect na maaaring mai-configure nang madali sa iyong system upang mai-redirect ang hindi gaanong ligtas o hindi naka-encrypt na trapiko sa web na HTTP sa isang naka-encrypt at naka-secure na HTTPS web server. Kung ikaw ay isang system administrator o isang developer, pagkatapos ay gumagamit ka ng Nginx server ng regular.

Sa artikulong ito, gaganahan kami sa kung paano i-redirect ang trapiko sa web mula sa HTTP sa isang ligtas na HTTPS sa Nginx.







Ang mga tugon at kahilingan ay ibinalik sa anyo ng plaintext sa HTTP, samantalang ang HTTPS ay gumagamit ng SSL / TLS upang i-encrypt ang komunikasyon sa pagitan ng client at server system. Samakatuwid dahil sa maraming mga kadahilanan, ang HTTPS ay ginagamit sa HTTP, na nakalista sa ibaba:



  • Ang lahat ng data sa pagitan ng client-server sa magkabilang direksyon ay naka-encrypt. Gayunpaman, hindi maaaring ma-access ng sinuman ang sensitibong impormasyon kung naharang.
  • Kapag gumagamit ka ng HTTPS, isasaalang-alang ng Google Chrome at iba pang mga browser ang iyong domain website bilang ligtas.
  • Pinapabuti ng bersyon ng HTTPS ang iyong tinukoy na pagganap ng website gamit ang HTTP / 2 na protocol.
  • Kung ihahatid mo ang domain ng iyong website sa pamamagitan ng HTTPS, kung gayon mas mahusay ang ranggo ng website sa Google, dahil mas gusto nito ang lahat ng mga naka-secure na website ng HTTPS.

Mas ginustong i-redirect ang trapiko HTTP sa HTTPS sa Nginx sa isang hiwalay na bloke ng server para sa bawat bersyon ng site. Inirerekumenda rin na iwasan ang pag-redirect ng trapiko gamit kung direksyon na maaaring maging sanhi ng hindi pangkaraniwang pag-uugali ng server.



I-redirect ang lahat ng trapiko mula sa HTTP patungong HTTPS

Idagdag ang mga sumusunod na pagbabago sa file ng pagsasaayos ng Nginx upang mai-redirect ang lahat ng trapiko mula sa HTTP patungo sa bersyon ng HTTPS:





server {
makinig ka 80default_server;
pangalan ng server _;
bumalik ka 301https: //$ host$ request_uri;
}

Sa ibaba, ipinaliwanag namin ang bawat term na nabanggit sa itaas:

Makinig sa 80 default_server - signal ito ng iyong system na nakakakuha ng lahat ng trapiko ng HTTP sa Port 80.
Server_name _ - ito ang domain na tutugma sa anumang hostname.



Ibalik ang 301 https: // $ host $ request_uri - sasabihin nito sa iyong mga search engine na permanenteng na-redirect ito. Tinutukoy nito na ang variable na $ host ay humahawak ng mga pangalan ng domain.

Kapag binago mo ang mga setting ng pagsasaayos, kailangan mong i-reload ang mga serbisyo nginx sa iyong system. Kaya, i-reload ang iyong mga serbisyo nginx sa pamamagitan ng paggamit ng sumusunod na utos:

$sudosystemctl reload nginx

Ire-redirect ang HTTP sa bersyon ng HTTPS para sa Tinukoy na domain sa Nginx

Matapos mai-install ang sertipiko ng SSL sa iyong domain, magkakaroon ka ng dalawang mga pagpipilian sa mga bloke ng server para sa domain na ito. Ang isang bloke ay para sa bersyon ng HTTP na nakikinig sa port 80, at ang pangalawang bersyon ay HTTPS sa port 443. Gayunpaman, upang mai-redirect ang isang solong domain ng website mula sa HTTP sa HTTPS, kailangan mong buksan ang pagsasaayos ng Nginx. Maaari mong hanapin ang file ng pagsasaayos na ito sa direktoryo / / etc / nginx / mga site na magagamit. Sa anumang kaso, kung hindi mo nahanap ang file na ito, maaari mo itong hanapin gamit ang /etc/nginx/nginx.conf, / usr / local / nginx / conf o / usr / local / etc / nginx, at pagkatapos ay isagawa ang sumusunod na mga pagbabago sa file na ito:

server {
makinig ka 80;
pangalan ng server domain-name.com www.domain-name.com;
bumalik ka 301https://domain-name.com$ request_uri;
}

Unawain natin ang linya ng code sa itaas ayon sa linya.
Makinig sa 80 - gamit ang port 80, makikinig ang server para sa lahat ng mga papasok na koneksyon na tinukoy na domain.

Server_name domain-name.com www.domain-name.com - tinutukoy nito ang mga pangalan ng domain. Kaya, palitan ito ng iyong domain domain name na nais mong i-redirect.

Ibalik ang 301 https: //domain-name.com$request_uri - inililipat nito ang trapiko sa bersyon ng HTTPS ng site. Ginagamit ang variable ng $ request_uri para sa buong orihinal na kahilingan na URI kung saan kasama rin ang mga argumento.

Gamit ang sumusunod na pamamaraan, maaari mong i-redirect ang trapiko sa bersyon ng HTTPS www sa hindi www na bersyon ng site. Inirerekumenda na lumikha ng isang pag-redirect sa isang hiwalay na bloke ng server para sa parehong mga hindi www at www na bersyon.

Ipaliwanag natin sa isang halimbawa. Kung nais mong i-redirect ang mga kahilingan sa www HTTPS sa hindi www na bersyon, susundin mo ang sumusunod na pagsasaayos:

server {
makinig ka 80;
pangalan ng server domain-name.com www.domain-name.com;
bumalik ka 301https://domain-name.com$ request_uri;
}
server {
makinig ka 443 ssl http2;
pangalan ng server www.domain-name.com;
#. . . ibang code
bumalik ka 301https://domain-name.com$ request_uri;
}
server {
makinig ka 443 ssl http2;
pangalan ng server domain-name.com;

#. . . ibang code
}

Palitan ang domain name ng iyong domain, tulad ng www.linuxhint.com.

Konklusyon

Tinalakay namin kung paano i-redirect ang trapiko mula sa bersyon ng HTTP sa HTTPS sa Nginx server. Sa pamamagitan ng pagbabago ng setting ng file ng pagsasaayos ng Nginx, madali mong mai-redirect ang trapiko sa HTTPS alinman para sa isang tinukoy na domain o i-redirect ang lahat. Ang pamamaraang ito, na nabanggit namin sa artikulong ito, ay maaaring makatulong sa iyo na gawing mas ligtas ang iyong website sa pamamagitan ng paggawa ng anumang mga pagbabago sa karanasan ng gumagamit.