Nginx + PHP-FPM — иногда показываются пустые страницы?

Столкнулись со странной проблемой — периодически отдаются пустые страницы.



Эррор логи — молчат, как будто всё отлично.



Access лог выглядит следующим образом: my.ip.address. — - [29/May/2013:16:24:25 +0100] «GET /my_page_url/ HTTP/1.1» 200 5 "/my_page_url/" «Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20100101 Firefox/21.0»rv:21.0) Gecko/20100101 Firefox/21.0"



Т.е. вернулся статус 200, а длина контента всего 5!



Проблема либо сама прекращается со временем. Либо сразу после рестарта php-fpm. Т.е. как мы поняли — это именно php-fpm.



Версии софта такие:

RedHat 5.8

PHP 5.3.24 (fpm-fcgi) (built: Apr 12 2013 10:13:38)

Nginx nginx/0.8.55



Что это может быть?
  • Вопрос задан
  • 5766 просмотров
Пригласить эксперта
Ответы на вопрос 5
@6uxou
Проверьте конфиги самого NGINX и его хоста. Возможно ошибка кроется там.

Стоит так же спросить, вы пытаетесь вызвать в my_page_url обычную статическую HTML'ку или же PHP скрипт? Если первое — то проблема в самом NGINX/Конфигурации.
Ответ написан
@6uxou
Попробуйте с такой конфигурацией:

server {
	server_name  moysait.ru;
	
  # opt-in to the future  
	charset utf-8;
  add_header "X-UA-Compatible" "IE=Edge,chrome=1";
  
  root  /var/www/moysait.ru/httpdocs;

  location / {
    index  index.html index.htm index.php;
    try_files $uri $uri/ /index.php?q=$uri&$args;
  }

  location ~ \.php$ {
    try_files  $uri = 404;
    fastcgi_pass unix:/tmp/php.sock;
    fastcgi_index index.php;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
  }
}


ПС: Только пути поменять не забудьте. Если не получится, пишите в личку, помогу.
Ответ написан
Комментировать
@crazyASD
Не хватает обработчиков php-fpm по видимости. Увеличивайте, либо сокращайте количество коннектов nginx-у
Ответ написан
BuriK666
@BuriK666 Куратор тега Nginx
Компьютерный псих
а посмотрите dmesg может процессы FPM падают…
Ответ написан
@6uxou
Альтернативно:

Проверьте не только количество воркеров PHP-FPM, но и так же размеры буфферов и таймаутов FastCGI.
Вот часть конфига которую я когда-то удачно использовал в NGINX в разделе http { }:

## Size Limits
client_max_body_size          128m;
client_body_buffer_size       128k;
client_header_buffer_size     1k;
large_client_header_buffers   4 4k;

## Timeouts 
client_body_timeout   5;
client_header_timeout 5;
keepalive_timeout     5;
send_timeout          5;
#reset_timedout_connection  on; 

## General Options
ignore_invalid_headers  on;
recursive_error_pages   on;
sendfile                on;
aio                     on;
output_buffers          2 128k;
server_name_in_redirect off;
server_tokens           off;

## TCP options  
tcp_nodelay on;
tcp_nopush on;

## Compression
gzip              on;
gzip_static       on;  
gzip_proxied      any;
gzip_min_length   1;
gzip_buffers      16 8k;
gzip_comp_level   5;
gzip_http_version 1.1;
gzip_types        text/css text/javascript text/xml text/plain text/x-component application/javascript application/json application/xml application/rss+xml font/truetype font/opentype application/vnd.ms-fontobject image/svg+xml;
gzip_vary         on;
gzip_disable      "MSIE [1-6]\.";
gzip_proxied      expired no-cache no-store private auth;    

## Fast CGI
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;


Надеюсь вам это поможет разобраться со своей проблемой.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы