Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 9418|Απάντηση: 0

[Ιστός] Εφαρμόστε δυναμικά ανάντη χρησιμοποιώντας το πρόγραμμα επίλυσης του Nginx

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 27/7/2019 10:23:00 μ.μ. | | |
Πρόσφατα, υπήρξε ανάγκη για αυτήν την πτυχή στη δουλειά μου, το upstream είναι εντελώς δυναμικό, καθορίζεται από τον πελάτη, υπάρχουν κάποια σφάλματα στην αρχή και τέλος η υπηρεσία DNS καθορίζεται μέσω του resolver, η συγκεκριμένη διαδικασία είναι η εξής.

1. Ξεκινήστε να πατάτε στο λάκκο

Η διαμόρφωση του nginx έχει ως εξής:

Όταν στέλνω αυτού του είδους το αίτημα:


Αναφέρθηκε το ακόλουθο σφάλμα:

access.log:
127.0.0.1 - - [14/Σεπ/2017:23:37:10 +0800] "GET / HTTP/1.1" 502 179 "-" "curl/7.29.0"

error.log:
2017/09/14 23:38:31 [σφάλμα] 25307#25307: *48 δεν έχει οριστεί πρόγραμμα επίλυσης για επίλυσηwww.baidu.com, πελάτης: 127.0.0.1, διακομιστής: localhost, αίτημα: "GET / HTTP/1.1", κεντρικός υπολογιστής: "127.0.0.1:8001"
Είναι σαφές ότι αυτό το ζήτημα δηλώνει ότι ο μη καθορισμός ενός προγράμματος επίλυσης προκαλεί προσαρμοσμένες upstreamwww.baidu.com.

2. Χρησιμοποιήστε το Resolver για να ορίσετε την ανάλυση ονόματος τομέα

Η τροποποιημένη διαμόρφωση nginx έχει ως εξής:

Τώρα τα αιτήματα είναι κανονικά 200:

req:
μπούκλα "127.0.0.1:8001/" -H "upstream-host:www.baidu.com" -βόα
μπούκλα "127.0.0.1:8001/" -H "upstream-host:www.qq.com" -βόα

access.log:
127.0.0.1 - - [14/Σεπ/2017:23:44:01 +0800] "GET / HTTP/1.1" 200 2381 "-" "curl/7.29.0"
127.0.0.1 - - [14/Σεπ/2017:23:44:07 +0800] "GET / HTTP/1.1" 200 244182 "-" "curl/7.29.0"
3. Οδηγίες επίλυσης

Η σύνταξη για την επίλυση είναι η εξής:

Syntax: resolver address ... [valid=time] [ipv6=on|off];
Default:    —
Context:    http, server, location
Μπορείτε να διαμορφώσετε πολλές υπηρεσίες DNS, το nginx θα χρησιμοποιήσει polling για πρόσβαση σε υπηρεσίες DNS, το nginx θα αποθηκεύσει προσωρινά τα αποτελέσματα της ανάλυσης ονόματος τομέα DNS, ο χρόνος προσωρινής μνήμης καθορίζεται από έγκυρο και το IPv6 χρησιμοποιείται για την ενεργοποίηση ή απενεργοποίηση του IPv6.

resolver_timeout χρησιμοποιείται για τον καθορισμό του χρονικού ορίου για την επίλυση DNS.





Προηγούμενος:Κοινή χρήση προσωπικού λογισμικού δημιουργίας FTP
Επόμενος:Διαμόρφωση αντίστροφου διακομιστή μεσολάβησης Alibaba Cloud OSS Nginx
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com