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

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

[Ιστός] Η αυτόματη εκκίνηση του Nginx απέτυχε

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 30/5/2015 11:46:28 μ.μ. | | |

Το Linode αναβαθμίστηκε ξανά~ Αλλά επειδή το παλιό μηχάνημα στην ιαπωνική αίθουσα υπολογιστών θα χρειαστεί μερικές εβδομάδες για να αναβαθμιστεί, ανυπομονώ, οπότε άνοιξα ένα νέο μηχάνημα, σχεδιάζοντας να μετακομίσω στο σπίτι και, παρεμπιπτόντως, να σκουπίσω τα περιττά σκουπίδια στον διακομιστή.

Το νέο μηχάνημα χρησιμοποιεί το σενάριο εγκατάστασης lnmp με ένα κλικ που έγραψα μόνος μου (στην πραγματικότητα, το μεγαλύτερο μέρος του κώδικα βρίσκεται στο διαδίκτυο = =##), και αφού έφτιαξα το σενάριο στο DigitalOcean, το έβαλα στο Linode για εγκατάσταση. Δεν υπήρχε πρόβλημα με την εγκατάσταση και τη μετακίνηση, αλλά μόλις επανεκκινήθηκε μετά την εγκατάσταση, παρουσιάστηκε πρόβλημα.


Μετά την επανεκκίνηση, είναι λογικό ότι το Nginx θα πρέπει να ξεκινήσει αυτόματα, αλλά μετά από αρκετή αναμονή, ο ιστότοπος εξακολουθεί να μην είναι προσβάσιμος. Συνδεθείτε στο SSH και εκτελέστε:

Υπηρεσία NGINX START

Εκκινήστε το Nginx με μη αυτόματο τρόπο και ο ιστότοπος θα είναι προσβάσιμος σε ελάχιστο χρόνο. Το σενάριο αυτόματης εκκίνησης είναι εντάξει και δεν υπάρχει πρόβλημα με τη χειροκίνητη εκκίνηση, γιατί το nginx απλά δεν ξεκινά;

Κοιτάζοντας τα αρχεία καταγραφής, βρήκα μια γραμμή όπως αυτή:

2014/05/02 17:02:28 [emerg] 2912#0: bind() σε [2400:8900::f03c:91ff:fe6e:5889]:80 απέτυχε (99: Δεν είναι δυνατή η εκχώρηση της ζητούμενης διεύθυνσης)

Φαίνεται ότι κατά την εκκίνηση του Nginx, το ipv6 δεν έχει αρχικοποιηθεί, επομένως η εκκίνηση απέτυχε. Όταν συνδέομαι στο SSH και ξεκινάω χειροκίνητα το Nginx, το ipv6 έχει ήδη αρχικοποιηθεί, ώστε να μπορεί να ξεκινήσει κανονικά.

Μάλλον μαντέψατε τον λόγο, πώς να το λύσετε; Μετά από μια κουραστική μέρα Google, βρήκα ένα παρόμοιο πρόβλημα και λύση στο ServerFault και θα το καταγράψω εδώ.

Εισαγωγή στο /etc/sysctl.conf:
  1. sysctl -w net.ipv6.conf.eth0.dad_transmits=0
Αντιγραφή κώδικα
Ή:

Προσθέστε μια γραμμή στο /etc/network/interfaces:
  1. post-up while ip -6 addr show tentative | grep . > /dev/null ; do sleep 1 ; done
Αντιγραφή κώδικα
Χρησιμοποιώ την τελευταία μέθοδο για να λύσω το πρόβλημα.




Προηγούμενος:Σχετικά με το Discuz! (X3.1) Πώς να ενεργοποιήσετε την κρυπτογράφηση https
Επόμενος:Έργα που συμμετέχουν στο Houpu Cup
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com