Αυτό καθορίζει τη σύνδεση, την αποστολή και την ανάγνωση της PHP-CGIΏρα, 300 δευτερόλεπτα είναι αρκετά, οπότε το δικό μουΔιακομιστήςΤα 504 σπάνια εμφανίζονταιΠύληΣφάλμα χρονικού ορίου. Το πιο σημαντικό είναιPHP-FPM.confτηςΕγκαθιδρύω, το οποίο θα οδηγήσει άμεσα σε 502 Bad Gateway και 504 Gateway Time-out.
Ας ρίξουμε μια πιο προσεκτική ματιά σε μερικά σημαντικά μέρη του php-fpm.confπαράμετρος:
Το php-fpm.conf έχει δύο κρίσιμες παραμέτρους, η μία είναι "max_children" και η άλλη είναι "request_terminate_timeout"
Έχω δύο ρυθμίσεις με τιμές "40" και "900", αλλά αυτή η τιμή δεν είναι καθολική, αλλά πρέπει να υπολογιστεί μόνος μου.
Δείτε πώς υπολογίζεται:
Αν το δικό σαςΥπηρεσίαΜέσοεκτέλεσηΑρκετά καλό, και οι ευρυζωνικοί πόροι είναι επαρκείς, η PHPΣενάριοΕάν δεν υπάρχουν βρόχοι ή σφάλματα, μπορείτε απλώς να ορίσετε το "request_terminate_timeout" σε 0s. Το 0s σημαίνει ότι το PHP-CGI εκτελείται συνεχώς χωρίς χρονικό περιορισμό. Εάν δεν μπορείτε να το κάνετε αυτό, δηλαδή, το PHP-CGI σας μπορεί να έχει ένα συγκεκριμένο σφάλμα ή το εύρος ζώνης σας να μην είναι αρκετό ή άλλοι λόγοι προκαλούν ψεύτικο θάνατο PHP-CGI, τότε συνιστάται να εκχωρήσετε μια τιμή στο "request_terminate_timeout", η οποία μπορεί να οριστεί ανάλογα με την απόδοση του διακομιστή σας. Σε γενικές γραμμές, όσο καλύτερη είναι η απόδοση, τόσο πιο ψηλά μπορείτε να τη ρυθμίσετε, 20 λεπτά -30 λεπτά είναι μια χαρά. Δεδομένου ότι τα σενάρια PHP του διακομιστή μου χρειάζονται πολύ χρόνο για να εκτελεστούν, μερικά μπορεί να είναι περισσότερα από 10 λεπτά, επομένως το ρύθμισα στα 900 δευτερόλεπτα, ώστε να μην προκαλέσει το θάνατο του PHP-CGI και να λάβει το σφάλμα 502 Bad gateway.
Και πώς υπολογίζεται η τιμή του «max_children»; Κατ 'αρχήν, όσο μεγαλύτερο τόσο το καλύτερο, php-cgiΔιαδικασίαΕάν υπάρχουν περισσότερα, θα διεκπεραιωθεί γρήγορα και θα υπάρχουν λίγα αιτήματα στην ουρά. max_children Σε γενικές γραμμές, υπό κανονικές συνθήκες, ένας διακομιστής καταναλώνει περίπου 20 εκατομμύρια μνήμης ανά php-cgi, οπότε ρύθμισα το "max_children" μου σε 40, 20M*40=800M, πράγμα που σημαίνει ότι όλα τα PHP-CGI κατανάλωναν λιγότερο από 800 εκατομμύρια σε χρόνο αιχμής, το οποίο είναι χαμηλότερο από την πραγματική μου μνήμη του 1 Gb. Και αν το "max_children" μου είναι μικρότερο, όπως 5-10, τότε το php-cgi θα είναι "πολύ κουραστικό", η ταχύτητα επεξεργασίας είναι επίσης πολύ αργή και ο χρόνος αναμονής είναι μεγαλύτερος. Εάν η αίτηση δεν έχει υποβληθεί σε επεξεργασία για μεγάλο χρονικό διάστημα, θα εμφανιστεί το σφάλμα χρονικού ορίου πύλης 504 και το php-cgi που υποβάλλεται σε επεξεργασία θα αντιμετωπίσει σφάλμα εσφαλμένης πύλης 502 εάν αντιμετωπίσει προβλήματα.
|