Centos + nginx + php-cgi

Τεχνικές και μόνο Συζητήσεις για WEB hosting servers, Mail servers, DNS servers. Όχι αναζήτηση υπηρεσιών εδώ!

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Centos + nginx + php-cgi

Δημοσίευση από dva_dev » 17 Νοέμ 2010 21:34

Εχω ένα μηχάνημα για να μαθαίνω και να κάνω τα πειράματα μου στημένο με Centos 5.5 nginx 0.8.53 php 5.3.3 (και το cgi-fcgi καθώς και spawn-fcgi για να τρέχω την php, το php-cgi συγκεκριμένα σαν fast cgi). Το μηχάνημα είναι ενημερωμένο.

Τρέχω το php-cgi με bind στο 127.0.0.1:9000

Εχω κάνει τις ρυθμίσεις στο nginx ώστε να στέλνει τα php scripts στο 127.0.0.1:9000

Ο web server (nginx) τρέχει κανονικά, έχω φτιάξει και μια σελίδα να κάνει κάποια queries μέσω odbc σε ένα άλλο μηχάνημα που έχω με sql server και παίζω.
Η php σελίδα μου κάνει refresh (και query στη βάση για να δείξει τα αποτελέσματα) κάθε 1 sec.
(Κανονικά ήταν πολύ μεγαλύτερο το διάστημα και έπαιζε και λίγη javascript + ajax για να γίνεται δουλειά αλλά το απλοποίησα για να μπορώ να κάνω το test).
Η php σελίδα (και το php-cgi) τρέχει κανονικά για λίγη ώρα, δεν ξέρω πόσο ακριβώς αλλά με 4 browsers να τρέχουν τη σελίδα και αυτόματα refresh ανά 1 sec, υπολόγισα περίπου στα 10-15 λεπτά. Μετά από αυτό το χρονικό διάστημα, crashάρει το php-cgi (όχι o nginx, αυτός συνεχίζει και δείχνει κανονικά τις html σελίδες, όπως και τις asp που τις προωθεί σε άλλον web server, ούτε έχει πρόβλημα ο sql server, αφού και οι asp σελίδες τον ίδιο sql server χρησιμοποιούν).
Το πρόβλημα δηλαδή εντοπίστηκε πως είναι στο php-cgi όταν τρέχει σαν fast-cgi.
Εχει αντιμετωπίσει κανείς κάτι ανάλογο; Το έχει ξεπεράσει;
Μήπως θα μπορούσε να φταίει ο odbc driver (freetds) που χρησιμοποιώ για να κάνω connect στον sql server; Η όλη υπόθεση το ξέρω πως είναι μυρίστε νύχια, αλλά έχω στερέψει από ιδέες.

Δεν έχω δοκιμάσει ακόμα να στήσω παρόμοιο περιβάλλον (nginx-php-fastcgi) σε windows, για να δω εκεί τη συμπεριφορά και να αποκλείσω ή να κινηθώ προς τον odbc driver.

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Centos + nginx + php-cgi

Δημοσίευση από gvre » 17 Νοέμ 2010 21:52

Ξαναδοκίμασε χωρίς να κάνεις connect με τον sql server. Δοκιμές μπορείς να κάνει με το ab.

nbc
Honorary Member
Δημοσιεύσεις: 526
Εγγραφή: 05 Σεπ 2009 20:12
Επικοινωνία:

Centos + nginx + php-cgi

Δημοσίευση από nbc » 17 Νοέμ 2010 22:47

Γιατί spawn-fcgi? Έχει ουσιαστικά εγκαταλειφθεί εδώ και ~2 χρόνια, και ο λόγος είναι προβλήματα όπως αυτό που αναφέρεις, δηλαδή προβληματική χρήση μνήμης.

Η εναλλακτική λύση είναι το PHP-FPM. Το συστήνει ο Igor Sysoev (nginx), η PHP (μιας και συνοδεύει το PHP 5.3.3 core), και όσοι έχουν δοκιμάσει και τα δύο.

Θα ήταν ενδιαφέρον να το τεστάρεις στο συγκεκριμένο setup, και να μας πεις αν όντως λύνεται το πρόβλημα.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Centos + nginx + php-cgi

Δημοσίευση από dva_dev » 18 Νοέμ 2010 06:55

Δοκίμασα χωρίς connect στον sql server, και το αποτέλεσμα είναι το ίδιο. Θα δοκιμάσω και με php-fpm και θα σας ενημερώσω.

Άβαταρ μέλους
CyberCr33p
Honorary Member
Δημοσιεύσεις: 3197
Εγγραφή: 06 Νοέμ 1999 01:00
Τοποθεσία: Αθήνα
Επικοινωνία:

Centos + nginx + php-cgi

Δημοσίευση από CyberCr33p » 18 Νοέμ 2010 11:53

Το spawn-fcgi δεν έχει πρόβλημα με τη χρήση μνήμης απλά δεν υποστηρίζει adaptive swapping, δηλαδή να δημιουργούνται περισσότερα php processes όταν χρειάζεται. Έτσι για παράδειγμα εάν ένα site έχει πολύ κίνηση ή εάν για να εκτελεστεί ένα php script χρειάζεται πολύ ώρα και τρέχεις λίγα php processes τότε φαίνεται σαν να κολλάει γιατί περιμένει να εκτελεστούν τα προηγούμενα requests.

Με το php-fpm εκτελούνται νέα processes όταν απαιτείται. Για παράδειγμα μπορείς να το ρυθμίσεις να τρέχει 5 php processes και εαν χρειαστεί να δημιουργεί και άλλα.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Centos + nginx + php-cgi

Δημοσίευση από dva_dev » 18 Νοέμ 2010 15:10

Η φάση είναι ότι σε windows 2003 iis6 και fastcgi php 5.2.14 παίζει κανονικά χωρίς πρόβλημα.

Με apache στο centos μου αρνείται πεισματικά να κάνει connect στη βάση.

:evil:

Δεν είμαι πλεονέκτης (ακόμα) να θέλω πολλά processes, ένα αλλά να τρέχει και να μην με παιδεύει...

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Centos + nginx + php-cgi

Δημοσίευση από gvre » 18 Νοέμ 2010 15:18

Τελικά τι χρησιμοποιείς; Apache ή nginx; :)

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Centos + nginx + php-cgi

Δημοσίευση από dva_dev » 18 Νοέμ 2010 16:33

Το πρόβλημα που θέλω να λύσω είναι με τον nginx και την php που σκάει όταν τρέχει σαν fastcgi.
Τα άλλα είναι συγκριτικές δοκιμές.

[update]
Με php-fpm (php 5.2.14) φαίνεται να παίζει χωρίς κρασαρίσματα και περίεργα βίτσια.

Ευχαριστώ
[/update]

Απάντηση

Επιστροφή στο “Apache, IIS, DNS Servers”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης