Mysql
 sql >> база данни >  >> RDS >> Mysql

Случаен PHP FastCGI / Нулиране на връзката от партньорски / непълни заглавки

Този проблем обикновено не е само специфичен за хоста, той също е свързан с разработчиците, в зависимост от конфигурацията. Въпреки това някои хостове са доста стриктни с FastCGI и ще ограничат вашите възможности. Като цяло е по-лесно да се изпълнява без използване на FastCGI и просто използвайте mod_php, освен ако не имате конкретна нужда да използвате FastCGI във вашето приложение.

Ще трябва да видим вашата fcgi обвивка (какво има в /dev/shm/blackmou-php.fcgi) или .htaccess за създаване на FastCGI, за да ви помогнем по-добре, без да знаем с кои файлове и кода, който е в тези файлове, възниква проблемът. Също така вашите хостове използват ли Apache, LightHttpd или Nginx (или комбинация)? В този момент силно препоръчвам да актуализирате, за да използвате PHP 5.3.9+

Тъй като това може да бъде причинено от произволен брой проблеми, FastCGI ефективно предотвратява атаката на вашия сайт/скриптове от отказ на услуга или срив поради изтичане на памет и т.н. (напр.:опит за справяне с 80 000 връзки просто чрез отпадане и ограничаване на броя на заявки или забиване в безкраен цикъл чрез изтичане на времето и прекратяване на процеса)

Тази грешка по-специално обикновено е причинена от idle_timeout (30 секунди по подразбиране) или ограничение на максималния брой деца на процесите. Може също да бъде причинено от някой, който стартира продължителен скрипт и затвори своя браузър/връзка, преди скриптът да завърши.

FastCGI стартира своята обвивка на процеса, изпълнява команда, изчакване преди завършване на процеса, връзката се вижда като нулирана от партньор.

Друг пример е, че се достига максимум деца (maxProcesses) (например:много сайтове показват 2 или 4 като пример, когато в действителност може да имате нужда от 20 или 50 в зависимост от средния трафик) Ако всички деца в момента са активни и допълнителна заявка/ връзката е направена, децата са ограничени до maxProcesses, към които FastCGI няма да споделя активните деца, така че първо трябва или да прекрати процеса и да започне нов дъщерен процес, или да отхвърли заявката, в зависимост от вашите конфигурации.

Ето още малко информация за настройките:

http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html

http://www.fastcgi.com/drupal/node/10

Пример за обвивка

PHP_FCGI_CHILDREN=0 #no limit
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=10000
export PHP_FCGI_MAX_REQUESTS

АКТУАЛИЗИРАНЕ

В допълнение към това, това може да бъде причинено и от ограничението на php памет

Ако горното не разреши проблема ви, актуализирайте своя php.ini, за да увеличите memory_limit



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Golang ПОРЪЧАЙТЕ ПО проблем с MySql

  2. Как да използвате ключова дума Regex в Spring Data Repository Method

  3. Вземете следващото автоматично увеличение

  4. Излезте от MySQL, без да се рестартира на El Capitan

  5. Как и кога да използваме SLEEP() правилно в MySQL?