ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° php nginx
ΠΠ°ΠΊ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ PHP-ΡΠΊΡΠΈΠΏΡΠ°?
ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅ ΠΊΡΡΠΏΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠΎ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ Π΅ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ° ΡΠ°Π·Π½ΡΡ Ρ ΠΎΡΡΠΈΠ½Π³Π°Ρ ΡΡΠΎΡΡ ΡΠ²ΠΎΠΈ Π»ΠΈΠΌΠΈΡΡ Π½Π° ΡΠ°ΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΈ Π΅ΡΠ»ΠΈ ΡΡΠ΄Π° Π²Π°Ρ ΠΏΡΠΈΠ²Π΅Π»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΡΠΎ Π²ΡΠ΅ΠΌΡ β ΡΠΎ Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ.
Π§ΡΠΎΠ±Ρ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΈ, ΠΎ ΡΠ΅ΠΌ ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΡ, ΠΏΡΠΈΠ²Π΅Π΄Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅ Π·Π° Π²ΡΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΌΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ΄Π° ΠΎΡΠΈΠ±ΠΊΡ:
Π― ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ 4-Ρ ΡΠΏΠΎΡΠΎΠ±Π°Ρ , ΠΊΠ°ΠΊ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ Π½Π΅Π΅.
ΠΠΎ ΡΡΠΎΠΈΡΡ Π½Π°ΡΠ°ΡΡ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΌΠΎΠ³ΡΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΠΈΠ½Π³-ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡ ΡΠ°ΠΌΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ.
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ PHP-ΡΠΊΡΠΈΠΏΡΠ° ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» php.ini
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° Π΄Π»Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ php.ini.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΎΡΠ½ΠΎ ΡΠ·Π½Π°ΡΡ, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΠ», ΠΏΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΡΡΡ ΡΡΠ°ΡΡΡ.
ΠΡΠΊΡΡΠ²Π°Π΅ΡΠ΅ Π΅Π³ΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π΄Π»Ρ Π²Π°Ρ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΈ Π² ΡΠ°ΠΌΡΠΉ Π½ΠΈΠ· Π²ΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅:
ΠΠ΄Π΅ Β«300Β» ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ 300 ΡΠ΅ΠΊΡΠ½Π΄ (ΠΌΠ΅Π½ΡΠ΅ΡΠ΅ Π½Π° ΡΠ²ΠΎΠ΅). ΠΡΠΎΡ ΡΠ°ΠΉΠ», ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π½Π΅ Π½Π° Π²ΡΠ΅Ρ Ρ ΠΎΡΡΠΈΠ½Π³Π°Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ PHP-ΡΠΊΡΠΈΠΏΡΠ° ΡΠ΅ΡΠ΅Π· Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Β«ini_setΒ»
ΠΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Β«ini_setΒ». ΠΠ΅ Π²Ρ Π²ΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠ°ΠΌ ΡΠ°ΠΉΠ» ΡΠΊΡΠΈΠΏΡΠ°, ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π² ΡΠ°ΠΌΡΠΉ Π²Π΅ΡΡ . ΠΡΠΈΠΌΠ΅Ρ:
ΠΠ΄Π΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«300Β» Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠΌΠ΅Π½ΡΠ΅ΡΠ΅ Π½Π° Π½ΡΠΆΠ½ΠΎΠ΅ Π²Π°ΠΌ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ . ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ PHP Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Π°.
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ PHP-ΡΠΊΡΠΈΠΏΡΠ° ΡΠ΅ΡΠ΅Π· Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Β«set_time_limitΒ»
Π’ΡΠ΅ΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ±, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Β«set_time_limitΒ» Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°. Π’Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠ°ΠΌΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ PHP. ΠΡΠΈΠΌΠ΅Ρ:
ΠΠ΄Π΅ΡΡ Β«300Β» Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΠ΅ Π½Π° Π½ΡΠΆΠ½ΠΎΠ΅ Π²Π°ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠ΄ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π² ΡΠ°ΠΌΠΎΠΌ Π²Π΅ΡΡ Ρ.
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π° .htaccess, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠΎΡΠ½Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ° (Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ²ΠΎΠΉ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ β ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π΅Π³ΠΎ).
Π ΡΠ°ΠΌΡΠΉ Π²Π΅ΡΡ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π²ΡΡΠ°Π²ΡΡΠ΅:
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Β«300Β» Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ΅Π½ΡΠ΅ΡΠ΅ Π½Π° ΡΠ²ΠΎΠ΅.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ . ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π²ΠΎ Π²ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ±Π°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Β«0Β», ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠ°ΠΊ ΡΠ·Π½Π°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ PHP-ΡΠΊΡΠΈΠΏΡΠ°?
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π²Ρ ΠΏΠΎΠΏΡΡΠ°Π»ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°, Π½ΡΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»ΠΈ Ρ Π²Π°Ρ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ PHP-ΡΠ°ΠΉΠ» Π² ΠΊΠΎΡΠ½Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°, Π³Π΄Π΅ Π²ΡΠ²Π΅Π΄ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ:
ΠΡΠ»ΠΈ Π²ΡΠ΅ΠΌΡ ΡΠ°Π²Π½ΡΠ΅ΡΡΡ ΡΠΎΠΌΡ, ΡΡΠΎ Π²Ρ ΡΠΊΠ°Π·Π°Π»ΠΈ β ΠΏΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ Π²Π°Ρ, Π²Ρ Π΄ΠΎΡΡΠΈΠ³Π»ΠΈ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ ΡΠ΅Π»ΠΈ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΠΆΠ΅ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΡΡΠ°ΡΡΡ Π΅ΡΠ΅ ΡΠ°Π·, Π½Π°ΠΏΠΈΡΠΈΡΠ΅ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΠΎ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΈΠ»ΠΈ Π½Π°ΠΏΡΠ°Π²ΡΡΠ΅ Π΅Π΅ Π²Π°ΡΠ΅ΠΌΡ Ρ ΠΎΡΡΠΈΠ½Π³-ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ.
ΠΡΠΎΠ±Π»Π΅ΠΌΡ Β«Π΄ΠΎΠ»Π³ΠΈΡ Β» ΡΠΊΡΠΈΠΏΡΠΎΠ² PHP
ΠΠ½Π΅ΡΠ½ΠΈΠΉ ΡΠ°ΠΉΠΌΠ°ΡΡ
Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° max_execution_time Π² ΠΊΠΎΠ½ΡΠΈΠ³Π΅ PHP.
ΠΠ΅Π±-ΡΠ΅ΡΠ²Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡ PHP ΡΠΊΡΠΈΠΏΡ (Π½Π΅ ΡΠ΅Π΄ΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, nginx β ΡΡΠΎΠ½ΡΠ΅Π½Π΄, apache β Π±ΡΠΊΡΠ½Π΄). Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π° ΠΏΡΠΎΠΊΡΠΈΡΡΡΡΠ΅ΠΌ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ°ΠΉΠΌΠ°ΡΡ ΠΏΡΠΎΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ»Ρ apache ProxyTimeout, Π΄Π»Ρ nginx proxy_read_timeout.
ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ
ΠΡΠ»ΠΈ ΡΠΊΡΠΈΠΏΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π² ΠΎΡΠ²Π΅Ρ Π½Π° HTTP-Π·Π°ΠΏΡΠΎΡ, ΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ° Π² ΡΠ²ΠΎΠ΅ΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ ΠΈ PHP ΡΠΊΡΠΈΠΏΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠΊΡΠΈΠΏΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ» ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ°, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π² TRUE ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ignore_user_abort Π² ΠΊΠΎΠ½ΡΠΈΠ³Π΅ PHP.
ΠΠΎΡΠ΅ΡΡ ΠΎΡΠΊΡΡΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ
Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠ°ΠΉΠΌΠ°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ MySQL ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ (ΡΠΏΠ°ΡΠΈΠ±ΠΎ Snowly)
ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΡΠΊ
Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², Π½ΠΎ ΡΡΠ° Π·Π°Π΄Π°ΡΠ° Π²ΡΠ΅Π³Π΄Π° ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎ. ΠΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½Π° Π»ΠΈ Π΄ΡΡΠ³Π°Ρ ΠΊΠΎΠΏΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°, ΠΈ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ, Π»ΠΈΠ±ΠΎ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ Π·Π°ΠΏΡΡΠΊ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°, ΡΡΠΎ ΡΠΎ Π²ΡΠΎΠ΄Π΅:
ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π½Π° Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ
Π ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΠ»Π³ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ, ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Ρ ΡΡΠΈΠΌ ΡΠ°ΠΌΡΠΌ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΎΡΡΠ°Π΅ΡΡΡ ΠΎΡΠΊΡΡΡΡΠΌ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΊΡΠΈΠΏΡ. ΠΡΠΎ Π½Π΅ Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΎ, Ρ.ΠΊ. Π·Π°Π΄Π°ΡΠ° Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π·Π°ΠΏΡΠΎΡ ΠΈ ΠΎΡΠ΄Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ Π²ΠΈΡΠ΅ΡΡ, ΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΎΡΠΊΠ΅ΡΠΎΠ² (ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²) Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π° Π΄ΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π±ΡΠ΄Π΅Ρ Π·Π°Π½ΡΡ. Π Π΅ΡΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΊΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΡΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π·Π°Π½ΡΡΡ Π²ΡΠ΅ (Π½Ρ ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅) ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ Π²ΠΎΡΠΊΠ΅ΡΡ (Π΄Π»Ρ apache ΡΠΌ. MaxClients), ΠΈ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ.
ΠΠΎΡΡΠΎΠΌΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π·Π°ΠΏΡΠΎΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅ΡΠ΅Π· php-cli, ΡΡΠΎΠ±Ρ Π½Π΅ Π½Π°Π³ΡΡΠΆΠ°ΡΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ, Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ ΡΡΠΎ Π΅Π³ΠΎ Π·Π°ΠΏΡΠΎΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ. ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ AJAX Π·Π°ΠΏΡΠΎΡΠΎΠ².
ΠΠΎΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΠΈ Π²ΡΠ΅ ΡΡΠΎ Ρ ΠΌΠΎΠ³Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΏΠΎ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅. ΠΠ°Π΄Π΅ΡΡΡ, Π΄Π»Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ PHP
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ΄ ΠΏΡΠ°Π²ΠΈΠ», ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΎΠΈΡ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° PHP. ΠΡΠ°Π²ΠΈΠ»Π° ΠΏΡΠΎΡΡΡΠ΅ ΠΈ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ .
Fastcgi
FastCGI β ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ PHP ΠΊ Web ΡΠ΅ΡΠ²Π΅ΡΡ. ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ²ΡΠ·ΠΊΠ΅ Ρ Nginx. PHP-fpm (Fastcgi ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄Π»Ρ PHP) ΠΈ Nginx ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ.
OpCache
ΠΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ PHP ΡΠΊΡΠΈΠΏΡ? PHP ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠ°ΠΉΠ» Ρ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ, Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΡ ΠΎΡΠΊΡΡΡΠΈΡ, ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ½ΠΈΠΌΠ°ΡΡ ΠΊΡΡΡ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ»Ρ Π½Π΅ ΠΌΠ΅Π½ΡΡΡΡΡ, ΡΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½Π΅ Π΄Π΅Π»Π°ΡΡ. ΠΡΡΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈ Π·Π°ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ opCache. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ Π² ΠΊΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ PHP. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΠΎ ΡΡΠΊΠΎΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π° ΡΡΠ΅Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΡΡΠΆΠ΅Π»ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠΎΠ³Π΄Π° ΡΠ°ΠΉΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡ, ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°ΠΌ ΡΠ±ΡΠΎΡΠΈΡ ΠΊΡΡ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ. ΠΠΎΡΠΎΡΠ΅, ΡΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π΅Π»Π°Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ². Π ΡΡΠΎ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΅Π³ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ.
Π Π²Π΅ΡΡΠΈΠΈ PHP5.5+ ΡΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠ΅. Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Π²Π΅ΡΡΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. ΠΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊ:
ΠΡΡΡΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΎΠ·Π½Π°ΡΠ°ΡΡ, ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π΅Ρ
ΠΡΠ»ΠΈ Π²Π΅ΡΡΠΈΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ°Π½Π½ΡΡ, Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ APC:
apt-cache search php-apc
ΠΡΠΎ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° opCache, Π½ΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅
ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π§Π°ΡΡΠΎ ΠΊΠΎΠ΄ ΠΏΡΠΎΡΡΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ»Ρ PHP Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Memcache. ΠΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΡΠΉ, Ρ.ΠΊ. ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅.
PHP.ini
ΠΡΠ»ΠΈ ΠΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ PHP, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΡ Π½Π°ΡΡΡΠΎΠΈΠ»ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎΠ΄ ΠΠ°Ρ ΡΠ°ΠΉΡ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΡΠ΅ΡΡΡΡΡ:
Π‘Π΅ΡΡΠΈΠΈ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, PHP Ρ ΡΠ°Π½ΠΈΡ ΡΠ΅ΡΡΠΈΠΈ Π² ΡΠ°ΠΉΠ»Π°Ρ . ΠΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΠΎ ΠΊΠΎΠ³Π΄Π° ΡΠ°ΠΉΠ»ΠΎΠ² ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ (Π΄Π΅ΡΡΡΠΊΠΈ ΡΡΡΡΡ), ΡΠ°Π±ΠΎΡΠ° Ρ Π½ΠΈΠΌΠΈ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΌΠ΅Π΄Π»ΡΡΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ). Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π»ΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΡΠ΅ΡΡΠΈΠΈ Π½Π° Memcache (php.ini):
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, ΡΠ°ΠΊΠ°Ρ ΡΡ Π΅ΠΌΠ° Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ².
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π°
ΠΠΎΠΌΠ½ΠΈΡΠ΅! ΠΠΠ β ΡΡΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. ΠΠ±ΡΠ΅ΠΊΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ, Π³Π΄Π΅-ΡΠΎ Ρ ΡΠ°Π½ΠΈΡΡ ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡ. ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ Π½ΡΠΆΠ½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡ:
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΠ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ
Π ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠΠ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π°. ΠΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΠ΄ΡΠ΅Ρ ΡΠ΅ΡΡΡΡΡ. Π‘ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ²Ρ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π΅ Π½ΡΠΆΠ½Ρ.
ΠΠ·Π±Π΅ΠΆΠ°Π»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΡΡΠΎ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° Π² Π±Π°Π·Ρ ΠΈΠ»ΠΈ ΡΡΡ:
ΠΠ°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡΡΡΠ΅ β ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΡΡΡΡ Π²ΡΠ±ΠΎΡΠΊΡ ΠΈ Π²ΡΠ²Π΅ΡΡΠΈ Π½ΡΠΆΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π°
ΠΠ΅Π»ΠΎΡΠΈ
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠ΅ ΠΏΡΡΠΈ. Π’ΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ Π»ΠΈΡΠ½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ°ΠΉΠ»Π°:
ΠΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅, ΡΠ΅ΠΌ define:
ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΡΠ»ΠΎΠ²ΠΈΠΈ for, Ρ.ΠΊ. ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π°:
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π²ΡΠ΅Π³Π΄Π° ΡΠΊΠ°Π·ΡΠ²Π°ΠΉΡΠ΅ ΡΡΡΠΎΠΊΠΈ Ρ ΠΊΠ°Π²ΡΡΠΊΠ°ΠΌΠΈ:
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΡΠΎΠΊΠΈ Ρ ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΠΌΠΈ ΠΊΠ°Π²ΡΡΠΊΠ°ΠΌΠΈ:
PHP cron-ΡΠΊΡΠΈΠΏΡΡ
ΠΠΎΠ³Π΄Π° PHP ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΊΡΠΈΠΏΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎ ΠΊΡΠΎΠ½Ρ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . Π§Π°ΡΡΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°:
Π‘Π°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅
ΠΡΠΎΡ ΡΠ΅ΠΊΡΡ Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ Π½Π°Π·Π°Π΄. Π‘ ΡΠ΅Ρ ΠΏΠΎΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ Π·Π΄Π΅ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ ΡΠΎΡΡ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ ΠΈΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ.
ΠΠ½Π°Π»ΠΈΠ· ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ PHP ΡΠΊΡΠΈΠΏΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ XHprof
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ Π½Π° beanstalkd
ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΄Π»Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΆΠ΅Π»ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Vertica ΠΈΠ· PHP Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ODBC
ΠΠ°ΠΊ Π²ΠΊΠ»ΡΡΠΈΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ PHP ΡΠ΅ΡΡΠΈΠΉ Π² Memcache
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ ΡΠ°ΡΡΡ Π»ΠΎΠ³ΠΈΠΊΠΈ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° PHP, Π° ΡΠ°ΡΡΡ Π½Π° NodeJS
Nohup Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠ° Π² ΡΠΎΠ½Π΅
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Server-Sent API Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ
ΠΠ΅ΡΠΎΠ΄Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² PHP
ΠΡΠΈΡΠΈΠ½Ρ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ
ΠΠ°ΠΊ ΡΠ»ΡΡΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° ΠΈ ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΠΎΡΡΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°
ΠΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΡΡΡΡΡΡ PHP ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ ΠΈ ΠΊΠ°ΠΊ Π΅Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π² PHP-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Gearman ΠΈ PHP
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ singleton ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ MySQL Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅Π³ΠΎ.
Π§Π΅ΠΌ Π²ΡΠ·Π²Π°Π½Π° ΠΎΡΠΈΠ±ΠΊΠ° 500 ΠΈ ΠΊΠ°ΠΊ Π΅Π΅ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π² Nginx
ΠΠ°ΠΊ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ» foreach Π² PHP
ΠΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ 504 gateway time out Nginx
ΠΠ΅Π±-ΡΠ΅ΡΠ²Π΅Ρ Nginx ΡΠ°ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°ΠΌΠΎΠ³ΠΎ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° Π΄Π»Ρ ΠΎΡΠ΄Π°ΡΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, Π½ΠΎ ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΠΊΡΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π²ΡΡΡΠΏΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊΠΎΠΌ. Π’Π°ΠΊΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΡΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΠ΅, ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ php-fpm ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ².
ΠΠΌΠ΅Π½Π½ΠΎ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Π±Π»ΡΠ΄Π°ΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° 504 gateway time out Nginx. Π Π½Π°ΡΠ΅ΠΉ ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½Π΅ΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΈ ΠΊΠ°ΠΊ Ρ Π½Π΅ΠΉ Π±ΠΎΡΠΎΡΡΡΡ. Π Π°Π·Π±Π΅ΡΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠΈΡΠΈΠ½.
Π§ΡΠΎ Π·Π½Π°ΡΠΈΡ 504 gateway time out Nginx?
ΠΠ°ΠΊ Ρ ΡΠΆΠ΅ ΡΠΊΠ°Π·Π°Π», ΡΠ°ΠΊΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΠ²Π΅Ρ Nginx ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΎΠΊΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ php-fpm ΠΈΠ»ΠΈ Apache. ΠΠΎΡΠ»ΠΎΠ²Π½ΠΎ, ΠΎΠ½Π° ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ° ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ°. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ° ΠΎΡ php-fpm. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΡΠΈΠ½ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ:
ΠΠ°Π»ΡΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΅ΡΠ»ΠΈ Π²Ρ Π²ΡΡΡΠ΅ΡΠΈΠ»ΠΈΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ 504 gateway time out Nginx.
ΠΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ 504 gateway time out Nginx?
ΠΠ°Π³ΡΡΠ·ΠΊΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ htop:
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ PHP Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΠΎ Π·Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠ΅ΡΡΡΡΠ°Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΊΠΎΠΏΠ°ΡΡΡΡ Π² Π΄Π²ΠΈΠΆΠΊΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°, ΠΏΡΡΠ°ΡΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ, ΠΎΠ± ΡΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ ΠΈΠ»ΠΈ ΠΆΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΡΠΉ VPS ΡΠ΅ΡΠ²Π΅Ρ.
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
ΠΠ΄Π΅ΡΡ 300 ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ 300 ΡΠ΅ΠΊΡΠ½Π΄, Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠΊΡΠΈΠΏΡΠΎΠ², ΡΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ. Π’Π°ΠΊΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠ° 504 ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° Nginx ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΠΊΡΠΈ Π΄Π»Ρ Apache ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ Π΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠΊΡΠΈ. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠΈ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ΅ΠΊΡΠΈΡ server:
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
sudo systemctl restart nginx
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π² error.log:
ΠΠ°Π»ΡΡΠ΅, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΈΠΌΠ΅Π½Π½ΠΎ Π² php-fpm, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ slow-log. ΠΠ»Ρ Π΅Π΅ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠ»Π°:
sudo vi /etc/php-fpm.d/www.conf
slowlog = /var/log/php-fpm/www-slow.log
request_slowlog_timeout = 5s
ΠΠ΄Π΅ΡΡ 5 ΡΠ΅ΠΊΡΠ½Π΄, ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π² Π»ΠΎΠ³ ΡΠ°ΠΉΠ» Π±ΡΠ΄ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΡΠΊΡΠΈΠΏΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΠΎΠ»ΡΡΠ΅ ΠΏΡΡΠΈ ΡΠ΅ΠΊΡΠ½Π΄. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΌΠ΅Π½ΡΡΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ. Π Π»ΠΎΠ³Π΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΠΈ ΡΠΊΡΠΈΠΏΡΡ, Π½ΠΎ ΠΈ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²Π΅Π»ΠΈ ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ:
ΠΠ°Π»ΡΡΠ΅ ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΡΡΠΎ Ρ ΡΡΠΈΠΌ Π΄Π΅Π»Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ.
ΠΡΠ²ΠΎΠ΄Ρ
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ 504 gateway time out Nginx 1.2 7, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ°. ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π±ΡΠ»Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π΄Π»Ρ Π²Π°Ρ.
Π ΡΡΡΠΊΠΈΠ΅ ΠΠ»ΠΎΠ³ΠΈ
nginx+php ΠΏΠΎΡΠ²ΠΈΡΡΡΡ 502 bad gateway ΠΠΎΠΎΠ±ΡΠ΅ ΡΡΠΎ Π½Π΅ nginx ΠΡΠΎΠ±Π»Π΅ΠΌΠ°, Π½ΠΎ ΠΈΠ·-Π·Π° fastcgi ΠΈΠ»ΠΈ php ΠΡΠΎΠ±Π»Π΅ΠΌΡ, Π²ΡΠ·Π²Π°Π½Π½ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ, ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠΈΠΌΠΈ.
php.ini ΠΈΠ· memory_limit Π‘Π»ΠΈΡΠΊΠΎΠΌ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ (Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ php (ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ)
Π²ΠΈΠ΄ ΠΆΡΡΠ½Π°Π» ΠΎΡΠΈΠ±ΠΎΠΊ nginx ΠΠ°ΠΉΠ΄Π΅Π½ΠΎ pstream sent too big header while reading response headerfrom upstream Π’ΠΎΠ³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡ client head buffer οΌ fastcgi buffer size Π―Π²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ½ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π° 32K γ
ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ php ΡΠ»ΠΈΡΠΊΠΎΠΌ Π²Π΅Π»ΠΈΠΊΠΎ ΠΈ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΈΡΡΠ΅ΠΊΠ»ΠΎ. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π² nginx ΠΈ fastcgi. (Π nginx fastcgi_connect_timeout 300; γ fastcgi_send_timeout 300; γ fastcgi_read_timeout 300; γ keepalive_timeout Π² php-fpm request_terminate_timeout Π php.ini max_execution_time οΌ
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΏΠΎΠ·Π°ΠΈΠΌΡΡΠ²ΡΠΉΡΠ΅ ΠΌΠ°ΡΠ»ΠΎ Wanjin ΠΎΠ½Π»Π°ΠΉΠ½, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π²Π΅ΡΡΠΈ ΠΈΡΠΎΠ³: ΠΏΡΠΎΡΠ΅ΡΡ php-cgi Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ΅Π½, Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ php ΡΠ»ΠΈΡΠΊΠΎΠΌ Π²Π΅Π»ΠΈΠΊΠΎ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ php-cgi ΡΠΌΠΈΡΠ°Π΅Ρ, Π²ΡΠ΅ 502 ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ.
ΠΡΠΈΠ±ΠΊΠ° 502 Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄Π½Π° Π²ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ PHP Ρ nginx
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΡΠΈΠ½ Π΄Π»Ρ nginx 502, Π½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΈΡΠΈΠ½ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ΅ΡΡΡΡΠΎΠ², ΡΠΎ Π΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π±ΡΠΊΡΠ½Π΄Π° php-fpm, nginx ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π² Π±ΡΠΊΡΠ½Π΄-ΠΏΡΠΎΡΠ΅ΡΡ php-fpm, Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ php-fpm ΠΏΡΠΈΠ²Π΅Π»Π° ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΊΠΎΠ΄ php Π½Π΅ Π±ΡΠ» ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΠΈ Π² ΠΈΡΠΎΠ³Π΅ Π±ΡΠ» Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ 502.
ΠΡΠΈΡΠΈΠ½Π° ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ° 502 Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈΡΡΠ΅ΠΊΠ»ΠΎ. ΠΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ»ΠΎΠΊ, ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ. ΠΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΌΠ°ΡΠΈΠ½Ρ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ Π»ΡΡΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ², Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Π°Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ Π½Π΅ Π²Π΅Π»ΠΈΠΊ, Π½ΠΎ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ 502, ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΡΠ°ΠΉΠΌ-Π°ΡΡΠ° ΡΡΠ΅Π½Π°ΡΠΈΡ.
1. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² php-fpm Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ
ΠΠΎ ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² php-fpm Π΄ΠΎ 100 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠ°ΠΌΡΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°, 200 Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Ρ ΠΏΠ°ΠΌΡΡΡΡ 4G.
2. Π£Π²Π΅Π»ΠΈΡΡΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΊΡΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠ΄ΡΠ΅ Linux
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ root)
3. Π’Π°ΠΉΠΌ-Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°
ΠΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ ΡΠΊΡΠΈΠΏΡ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π½ΠΎΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ.
Nginx.conf Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
ΠΡΠ»ΠΈ php-fpm.conf Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ
4. ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠ΅ΡΠ° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π²Π΅Π»ΠΈΠΊΠΈ
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π² nginx.conf
proxy_buffer_size 64k;
proxy_buffers 512k;
proxy_busy_buffers_size 128k;
ΠΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π°: Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΌ Π·Π°Π»Π΅ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈΠ»ΠΈ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΌ Π·Π°Π»Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ Π΄ΠΎΠΌΠ΅Π½Π°.
ΠΠΎ ΡΠ°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅, ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΠΉΠΌ-Π°ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ php-fpm ΠΈΠ· request_terminate_timeout οΌ
ΠΡΡΡΠΈΠΉ Π½Π°Π±ΠΎΡ request_terminate_timeout=0;
ΠΡΡΠ³ΠΎΠΉ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΡΠ° Π²Π΅ΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ°ΠΉΡΠ°, Π½ΠΎ ΡΠ΅Π°ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ, Π΅ΡΠ»ΠΈ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π±ΠΎΠ»ΡΡΠ΅. ΠΡΠ»ΠΈ Π²Π°Ρ ΡΠ°ΠΉΡ ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ, ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΅Π³ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΊΡΡΡΡ Π΅Π³ΠΎ.
6. Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ 502:
ΠΡΡΠ΅Π³ΡΠ»ΠΈΡΡΠΉΡΠ΅ ΠΈ ΡΠ²Π΅Π»ΠΈΡΡΡΠ΅ ΠΎΡΡΡΠ°Π²Π°Π½ΠΈΠ΅ ΠΎΡ php ΠΈ Nginx.
PHP-FPM ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ Π²ΡΡΠΎΠΊΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ
ΠΠ΄Π΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ php-fpm, Π½ΠΎ Π² ΡΠ΅Π»ΠΎΠΌ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ nginx, Π΅ΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, ΡΡΡΠ΅ΠΊΡ Π½Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π΅Π»ΠΈΠΊ, ΠΈ nginx Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Nginx:http://blog.haohtml.com/archives/6213 ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ Π΄ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ ΡΠ°Π·ΡΡΠ² ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π΅Π»ΠΈΠΊ.
PHP-CGI (FASTCGI) ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠ»ΠΎΡ ΠΎΠΌΡ ΡΠ»ΡΠ·Ρ nginx 502
ΠΡΠΈΠ±ΠΊΠ° ΡΠ°ΡΡΠΎΠ³ΠΎ Π²Π·ΡΡΠ²Π° NGINX 502 BAD GATEWAY Π½Π΅ Π±ΡΠ»Π° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΅ΡΠ΅Π½Π° ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΡΠ΅Π±Π½ΠΈΠΊΠ°.
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Ρ ΠΊΡΠ°ΡΠΊΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Ρ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ 502 BAD GATEWAY: 1. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ²Π΅Π»ΠΈΡΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ max_children Π² php-fmp.conf, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ΅ΠΉΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
Π Π΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°ΠΉΡΠ΅ php-fpm Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ reload. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π° Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° php ΡΠ»ΠΈΡΠΊΠΎΠΌ Π²Π΅Π»ΠΈΠΊΠΎ, ΠΈ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° php-fpm ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΡΠ°Π½ΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠ°ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΅ΡΠΈΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ php-cgi Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΌΡΡΠΈ, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅Π³ΠΎ 502 ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ, Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ
ΠΎΡΠΎΡΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ crontab Π΄Π»Ρ ΠΏΠ»Π°Π²Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ° php-fpm, ΡΡΠΎΠ±Ρ Π½Π΅ Π²Π»ΠΈΡΡΡ Π½Π° ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² PHP.
/10 * * * /usr/local/php/sbin/php-fpm reload
When you running a highload websitewith PHP-FPM via FastCGI, the following tips may be useful to you : )
ΠΡΠ»ΠΈ Π²Π°Ρ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ Π²Π΅Π±-ΡΠ°ΠΉΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ PHP-FPM Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ FastCGI, ΡΡΠΈ ΡΠΎΠ²Π΅ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½Ρ π
1.Compile PHPβs modules as less as possible, the simple the best (fast);
Increas PHP FastCGI child number to 100 and even more.Sometime, 200 is OK! ( On 4GB memory server);
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠΏΠΎΡΠΎΠ± ΡΠ²ΡΠ·ΠΈ Nginx ΠΈ FastCGI Ρ TCP Π½Π° UnixSocket. TCP Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°Π±ΠΈΠ»Π΅Π½, ΡΠ΅ΠΌ UnixSocket, ΠΏΡΠΈ Π²ΡΡΠΎΠΊΠΎΠΌ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ΅, Π½ΠΎ Unix Socket ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ TCP.
fastcgi_pass unix:/tmp/php-cgi.sock;
source /etc/profile
vi /path/to/php-fpm.conf
Change 1024 to 4096 or higher number.
vi /path/to/php-fpm.conf
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ 1024 Π½Π° 4096 ΠΈΠ»ΠΈ Π²ΡΡΠ΅
.
ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ PHP-FPM.
6. Using PHP code accelerator,e.g eAccelerator, XCache. And set βcache_dirβ to /dev/shm on Linux.
6. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»Ρ php-ΠΊΠΎΠ΄Π°, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ eAccelerator, XCache. ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Linux Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ cache_dir Π£ΠΊΠ°ΠΆΠΈΡΠ΅ Π½Π° / dev / shm
ΠΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ
ΠΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ· ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ MySQL
ΠΡΠΎΡΠΌΠΎΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π°Π½Π΄ΡΠΎΠΈΠ΄ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
ΠΠ΅ΡΠΎΠ΄ 1: ADB ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΠΉΠ» ΡΡΡΡΠΎΠΉΡΡΠ²Π° Android-ΡΡΡΠ΄ΠΈΠΈ Android ADB ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ Android ΠΠΊΡΠΏΠΎΡΡ ΡΠ°ΠΉΠ»Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°ΠΉΠ»Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Explorer Π‘ΠΏΠΎΡΠΎΠ± 2.