Nginx Ανακατεύθυνση HTTP σε HTTPS

Nginx Redirect Http Https



Το Nginx, προφέρεται ως Engine x, είναι ένας δωρεάν, ανοιχτού κώδικα ιστό βασισμένος στο Linux υψηλής απόδοσης και ένας αντίστροφος διακομιστής μεσολάβησης που είναι υπεύθυνος για τη διαχείριση και τον χειρισμό του φόρτου της μεγαλύτερης επισκεψιμότητας ιστότοπων στο Διαδίκτυο. Το Nginx είναι ένα ισχυρό εργαλείο ανακατεύθυνσης που μπορεί να διαμορφωθεί εύκολα στο σύστημά σας για να ανακατευθύνει την λιγότερο ασφαλή ή μη κρυπτογραφημένη επισκεψιμότητα ιστού HTTP σε έναν κρυπτογραφημένο και ασφαλή διακομιστή Ιστού HTTPS. Εάν είστε διαχειριστής συστήματος ή προγραμματιστής, τότε χρησιμοποιείτε τακτικά τον διακομιστή Nginx.

Σε αυτό το άρθρο, θα εργαστούμε για τον τρόπο ανακατεύθυνσης της επισκεψιμότητας Ιστού από HTTP σε ασφαλές HTTPS στο Nginx.







Οι απαντήσεις και τα αιτήματα επιστρέφονται με τη μορφή απλού κειμένου στο HTTP, ενώ το HTTPS χρησιμοποιεί SSL/TLS για την κρυπτογράφηση της επικοινωνίας μεταξύ του προγράμματος -πελάτη και του διακομιστή. Επομένως, για πολλούς λόγους, το HTTPS χρησιμοποιείται πάνω από το HTTP, τα οποία παρατίθενται παρακάτω:



  • Όλα τα δεδομένα μεταξύ του διακομιστή-πελάτη και στις δύο κατευθύνσεις είναι κρυπτογραφημένα. Ωστόσο, κανένας δεν μπορεί να έχει πρόσβαση σε ευαίσθητες πληροφορίες εάν υποκλαπεί.
  • Όταν χρησιμοποιείτε HTTPS, το Google Chrome και άλλα προγράμματα περιήγησης θα θεωρούν τον τομέα του ιστότοπού σας ως ασφαλή.
  • Η έκδοση HTTPS βελτιώνει την καθορισμένη απόδοση του ιστότοπού σας χρησιμοποιώντας το πρωτόκολλο HTTP/2.
  • Εάν εξυπηρετείτε τον τομέα του ιστότοπού σας μέσω HTTPS, τότε ο ιστότοπος θα έχει καλύτερη κατάταξη στο Google, καθώς ευνοεί όλους τους ιστότοπους με ασφάλεια HTTPS.

Προτιμάται η ανακατεύθυνση της επισκεψιμότητας HTTP σε HTTPS στο Nginx σε ξεχωριστό μπλοκ διακομιστή για κάθε έκδοση ιστότοπου. Συνιστάται επίσης να αποφύγετε την ανακατεύθυνση της επισκεψιμότητας χρησιμοποιώντας κατεύθυνση που μπορεί να προκαλέσει ασυνήθιστη συμπεριφορά του διακομιστή.



Ανακατεύθυνση όλης της επισκεψιμότητας από HTTP σε HTTPS

Προσθέστε τις ακόλουθες αλλαγές στο αρχείο διαμόρφωσης Nginx για να ανακατευθύνετε όλη την επισκεψιμότητα από HTTP σε έκδοση HTTPS:





υπηρέτης {
ακούω 80προεπιλεγμένος διακομιστής?
όνομα διακομιστή _?
ΕΠΙΣΤΡΟΦΗ 301https: //$ host$ request_uri?
}

Παρακάτω, έχουμε αναπτύξει κάθε προαναφερθέντα όρο:

Ακούστε 80 default_server - αυτό θα σηματοδοτήσει το σύστημά σας που συλλαμβάνει όλη την κίνηση HTTP στη θύρα 80.
Server_name _ - είναι ο τομέας που θα ταιριάζει με οποιοδήποτε όνομα κεντρικού υπολογιστή.



Επιστρέψτε 301 https: // $ host $ request_uri - αυτό ενημερώνει τις μηχανές αναζήτησης που το ανακατευθύνουν μόνιμα. Καθορίζει ότι η μεταβλητή $ host έχει τα ονόματα τομέα.

Μόλις αλλάξετε τις ρυθμίσεις διαμόρφωσης, πρέπει να φορτώσετε ξανά τις υπηρεσίες Nginx στο σύστημά σας. Έτσι, φορτώστε ξανά τις υπηρεσίες σας Nginx χρησιμοποιώντας την ακόλουθη εντολή:

$sudosystemctl επαναφόρτωση nginx

Ανακατεύθυνση HTTP σε έκδοση HTTPS για καθορισμένο τομέα στο Nginx

Αφού εγκαταστήσετε το πιστοποιητικό SSL στον τομέα σας, θα έχετε δύο επιλογές μπλοκ διακομιστή για αυτόν τον τομέα. Το ένα μπλοκ είναι για την έκδοση HTTP που ακούει στη θύρα 80 και η δεύτερη έκδοση είναι HTTPS στη θύρα 443. Ωστόσο, για να ανακατευθύνετε έναν τομέα ιστότοπου από HTTP σε HTTPS, πρέπει να ανοίξετε τη διαμόρφωση Nginx. Μπορείτε να εντοπίσετε αυτό το αρχείο διαμόρφωσης στον κατάλογο/etc/nginx/sites-available. Σε κάθε περίπτωση, εάν δεν βρήκατε αυτό το αρχείο, μπορείτε να το αναζητήσετε με /etc/nginx/nginx.conf,/usr/local/nginx/conf ή/usr/local/etc/nginx και, στη συνέχεια, να εκτελέσετε ακολουθούν οι αλλαγές σε αυτό το αρχείο:

υπηρέτης {
ακούω 80?
όνομα διακομιστή domain-name.com www.domain-name.com?
ΕΠΙΣΤΡΟΦΗ 301https://domain-name.com$ request_uri?
}

Ας κατανοήσουμε τον παραπάνω κώδικα γραμμή προς γραμμή.
Ακούστε 80 - χρησιμοποιώντας τη θύρα 80, ο διακομιστής θα ακούσει όλες τις εισερχόμενες συνδέσεις που καθορίζονται στον τομέα.

Server_name domain-name.com www.domain-name.com-καθορίζει τα ονόματα τομέα. Έτσι, αντικαταστήστε το με το όνομα τομέα ιστότοπού σας που θέλετε να ανακατευθύνετε.

Επιστρέψτε 301 https: //domain-name.com$request_uri-μετακινεί την επισκεψιμότητα στην έκδοση HTTPS του ιστότοπου. Η μεταβλητή $ request_uri χρησιμοποιείται για το πλήρες αρχικό URI αιτήματος στο οποίο περιλαμβάνονται επίσης ορίσματα.

Χρησιμοποιώντας την ακόλουθη μέθοδο, μπορείτε να ανακατευθύνετε την επισκεψιμότητα στην έκδοση HTTPS www στην έκδοση που δεν είναι www του ιστότοπου. Συνιστάται η δημιουργία ανακατεύθυνσης σε ξεχωριστό μπλοκ διακομιστή και για εκδόσεις που δεν είναι www και www.

Ας εξηγήσουμε με ένα παράδειγμα. Εάν θέλετε να ανακατευθύνετε τα αιτήματα www HTTPS στην έκδοση που δεν είναι www, ακολουθήστε την ακόλουθη διαμόρφωση:

υπηρέτης {
ακούω 80?
όνομα διακομιστή domain-name.com www.domain-name.com?
ΕΠΙΣΤΡΟΦΗ 301https://domain-name.com$ request_uri?
}
υπηρέτης {
ακούω 443 ssl http2?
όνομα διακομιστή www.domain-name.com?
# Το Το άλλος κωδικός
ΕΠΙΣΤΡΟΦΗ 301https://domain-name.com$ request_uri?
}
υπηρέτης {
ακούω 443 ssl http2?
όνομα διακομιστή domain-name.com?

# Το Το άλλος κωδικός
}

Αντικαταστήστε το όνομα τομέα με τον τομέα σας, όπως www.linuxhint.com.

συμπέρασμα

Έχουμε συζητήσει τον τρόπο ανακατεύθυνσης της επισκεψιμότητας από την έκδοση HTTP στο HTTPS στο διακομιστή Nginx. Αλλάζοντας τη ρύθμιση αρχείου διαμόρφωσης Nginx, μπορείτε εύκολα να ανακατευθύνετε την επισκεψιμότητα στο HTTPS είτε για έναν καθορισμένο τομέα είτε να ανακατευθύνετε όλους. Αυτή η μέθοδος, την οποία έχουμε αναφέρει σε αυτό το άρθρο, μπορεί να σας βοηθήσει να κάνετε τον ιστότοπό σας πιο ασφαλή κάνοντας οποιεσδήποτε αλλαγές στην εμπειρία χρήστη.