Перейти к контенту
  • 0

Быстрое редактирование в 2.1.7 под nginx0.5.4 и fastcgi php5.2.0


daitepiva

Вопрос

Привет.

Перешёл с апача+мод_пхп на nginx+fascgi.

 

Всё заработало с виду нормально, но после часа эксплуатации заметили некоторые проблемы. Самое основное это ошибки при использовании AJAX-фичи для быстрого

редактирования своих сообщений:

2006/12/17 16:10:00 [error] 55895#0: *28759 upstream prematurely closed
connection while reading response header from upstream, client: 10.0.1.31,
server: forum.tld, URL: "/index.php?s=&act=xmlout&do=post-edit-save&p=3213952&t=404709&f=129",
upstream: "fastcgi://unix:/tmp/php.sock:", host: "forum.tld", referrer: "http://forum.tld/index.php?showtopic=404709"

 

Для клиента это выглядит так - выбираешь опцию "Быстрое редактирование", правишь сообщение, нажимаешь "Применить исправления", появляется бегунок и на этом всё, более никаких изменений.

В логах PHP при этом ругань о преждевременной (premature) кончине скрипта sources/ipclass.php, с указанием строки 3737 (к сожалению точных логов не сохранилось).

 

Я грешил на отсутствие некоторых переменных, которые не передавались в fastcgi, но эксперименты ними не помогли. Вот конфиг nginx в части fastcgi:

 location ~* ^.+\.(php)$ {
fastcgi_pass unix:/tmp/php.sock;
fastcgi_index  index.php;

# пробовал с минимумом параметров:
  fastcgi_param SCRIPT_FILENAME	/www/htdocs$fastcgi_script_name;
  fastcgi_param  QUERY_STRING	   $query_string;
  fastcgi_param  REMOTE_ADDR		$remote_addr;

# потом с параметрами для метода POST:
fastcgi_param  REQUEST_METHOD	 $request_method;
fastcgi_param  CONTENT_TYPE	   $content_type;
fastcgi_param  CONTENT_LENGTH	 $content_length;

# и со всеми параметрами, какие нашёл:
fastcgi_param  REDIRECT_STATUS	200;
fastcgi_param  SCRIPT_NAME		$fastcgi_script_name;
fastcgi_param  REQUEST_URI		$request_uri;
fastcgi_param  DOCUMENT_URI	   $document_uri;
fastcgi_param  DOCUMENT_ROOT	  $document_root;
fastcgi_param  SERVER_PROTOCOL	$server_protocol;
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  REMOTE_PORT		$remote_port;
fastcgi_param  SERVER_ADDR		$server_addr;
fastcgi_param  SERVER_PORT		$server_port;
fastcgi_param  SERVER_NAME		$server_name;
}

 

А вот так запускается php:

 PHP_FCGI_CHILDREN=10 /usr/local/php520/bin/php -a -b /tmp/php.sock

 

 

Кроме этого возникала другая ошибка, которую мне не удалось привязать к конкретному действию на форуме (вероятно какие ресурсоёмкие запросы, типа поиска):

2006/12/17 16:10:50 [error] 55893#0: *29240 FastCGI sent in stderr: "PHP Fatal error:  Out of memory (allocated 2883584) (tried to allocate 1732099484 bytes) in /www/forum/sources/sql/mysql_extra_que  ries.php on line 70" while reading response header from upstream, client:  195.38.161.6, server: forum.tld, URL: "/index.php?s=&act=xmlout&do=get-member-names&name=%u041F%u0438%u043B%u044E%u0
43B%u044F&__=1166350279734", upstream: "fastcgi://unix:/tmp/php.sock:", host:
"forum.tld", referrer: "http://forum.tld/index.php?act=Search&f="

 

Т.е. получается, что php запросил 1.7 гига памяти (у меня всего 2 Гига), в то время когда ему выдано 2.8 метра )

 

 

Пользуется ли кто-нибудь связкой nginx+fastcgi? Как обстоят дела с "Быстрым редактированием"?

Спасибо.

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0
Зачем через сокет пускаешь?

Ну через юникс-сокет обычно быстрее, чем через TCP-сокет.

К тому же ИМХО так логичнее - всегда казалось странным общение друг с другом разных сервисов на одной машине через TCP )

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Делайте через TCP, читайте рассылку архив рассылки nginx, там проблема взаимодействия через UD обсуждалась.
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Спасибо, попробую.

В список рассылки nginx я писал (как раз сейчас и идёт обсуждение) и пока мне про эту проблему никто не сказал.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

А по поводу проблемы с памятью читай здесь: Fatal error

Мои предположения: это связано с PHP 5.2.0. Если будут проблемы с памятью попробуй PHP 4.4.4 поставить.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Мне в аналогичной проблеме помогло это:

SecFilterCheckURLEncoding Off

Вероятно проблема у вас была не аналогичная - эта опция судя по всему для mod_security, а не как ни для nginx.

 

 

 

Мои предположения: это связано с PHP 5.2.0. Если будут проблемы с памятью попробуй PHP 4.4.4 поставить.

Попробую, спасибо.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Форум Nafigator`а стал значительно быстрее работать, у него такая же связка.
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.