PHP-FPM сбрасывает соединение

180 views
Skip to first unread message

Александр Автомонов

unread,
Mar 11, 2014, 4:49:57 PM3/11/14
to highloa...@googlegroups.com
Не могу понять в чем дело. При попытке подключить к заданному порту мгновенно получаю Aborted. Сервер чистый, под FreeBSD 10, на борту только PHP, собранный с fpm, cgi и cli. Настройки по умолчанию, кроме путей к логам. FPM запускается без ошибок, при запросе ошибок в логе нет, в логе запросов тоже пусто. В sockstat все верно: *:9000. Помогите разобраться в проблеме.

RedRat

unread,
Mar 13, 2014, 3:27:12 AM3/13/14
to highloa...@googlegroups.com
среда, 12 марта 2014 г., 0:49:57 UTC+4 пользователь Александр Автомонов написал:
Не могу понять в чем дело. При попытке подключить к заданному порту мгновенно получаю Aborted.

Ты самое главное не сказал - кто на ком лежал... в смысле, что к чему подключается-то?

Александр Автомонов

unread,
Mar 14, 2014, 5:31:19 AM3/14/14
to highloa...@googlegroups.com
Просто из браузера на 9000 порт

четверг, 13 марта 2014 г., 11:27:12 UTC+4 пользователь RedRat написал:

Oleksandr Bodnarashyk

unread,
Mar 14, 2014, 5:37:42 AM3/14/14
to highloa...@googlegroups.com
Там "немного" отличный от HTTP протокол :)

14.03.2014 11:31, Александр Автомонов пишет:
--

---
Вы получили это сообщение, поскольку подписаны на группу "highload-php-ru".
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес highload-php-...@googlegroups.com.
Дополнительные возможности доступны на странице https://groups.google.com/d/optout.

Александр Автомонов

unread,
Mar 14, 2014, 5:53:03 AM3/14/14
to highloa...@googlegroups.com
telnet на localhost так же вернул отбойник: Connection closed by foreign host. 

пятница, 14 марта 2014 г., 13:37:42 UTC+4 пользователь boda2004 написал:

Eugene Klimov

unread,
Mar 14, 2014, 5:54:36 AM3/14/14
to highloa...@googlegroups.com
а sudo ps -auxf | grep fpm
что вернул?

14 марта 2014 г., 15:53 пользователь Александр Автомонов
<avto...@gmail.com> написал:

Александр Автомонов

unread,
Mar 14, 2014, 6:45:37 AM3/14/14
to highloa...@googlegroups.com

root     760   0.0  0.3 34820 6992  -  Ss    1:15PM   0:00.27 php-fpm: master p
www      761   0.0  0.3 34820 7028  -  I     1:15PM   0:00.00 php-fpm: pool www
www      762   0.0  0.3 34820 7028  -  I     1:15PM   0:00.00 php-fpm: pool www
root    1108   0.0  0.1 18724 2148  1  R+    2:30PM   0:00.00 grep fpm


пятница, 14 марта 2014 г., 13:54:36 UTC+4 пользователь Slach написал:

Vitaliy Okulov

unread,
Mar 14, 2014, 6:50:33 AM3/14/14
to highloa...@googlegroups.com
А изначально проблем в чем - php-fpm не отрабатывает fastcgi запросы или что-то еще?


14 марта 2014 г., 14:45 пользователь Александр Автомонов <avto...@gmail.com> написал:

Александр Автомонов

unread,
Mar 14, 2014, 6:57:24 AM3/14/14
to highloa...@googlegroups.com
Изначально...есть система с fpm + nginx в качестве фронтенда, проблема была та же - сброс соединения. В итоге поднял чистую систему где только php-fpm с почти умолчательным конфигом и все одно...Обе системы под vmware

пятница, 14 марта 2014 г., 14:50:33 UTC+4 пользователь Vitaliy Okulov написал:

Vitaliy Okulov

unread,
Mar 14, 2014, 7:22:17 AM3/14/14
to highloa...@googlegroups.com
А есть возможность прислать конфиги как nginx, php-fpm так и firewall?


14 марта 2014 г., 14:57 пользователь Александр Автомонов <avto...@gmail.com> написал:
Изначально...есть система с fpm + nginx в качестве фронтенда, проблема была та же - сброс соединения. В итоге поднял чистую систему где только php-fpm с почти умолчательным конфигом и все одно...Обе системы под vmware

пятница, 14 марта 2014 г., 14:50:33 UTC+4 пользователь Vitaliy Okulov написал:
А изначально проблем в чем - php-fpm не отрабатывает fastcgi запросы или что-то еще?

--

Eugene Klimov

unread,
Mar 14, 2014, 7:30:14 AM3/14/14
to highloa...@googlegroups.com
>Обе системы под vmware
а telnet localhost делается в гостевой машине? или в host os ?

Eugene Klimov

unread,
Mar 14, 2014, 7:32:56 AM3/14/14
to highloa...@googlegroups.com
>> а sudo ps -auxf | grep fpm
>> что вернул?
а netstat -nap | grep 9000
?

Александр Автомонов

unread,
Mar 14, 2014, 7:53:42 AM3/14/14
to highloa...@googlegroups.com
Но ipfw в rc.conf не включен...вроде он не должен работать по умолчанию

пятница, 14 марта 2014 г., 15:22:17 UTC+4 пользователь Vitaliy Okulov написал:
php-fpm.conf
nginx.conf
rc.firewall

Александр Автомонов

unread,
Mar 14, 2014, 7:54:02 AM3/14/14
to highloa...@googlegroups.com
В гостевой

пятница, 14 марта 2014 г., 15:30:14 UTC+4 пользователь Slach написал:

Александр Автомонов

unread,
Mar 14, 2014, 8:06:08 AM3/14/14
to highloa...@googlegroups.com
nmap вернул 
9000/tcp open cslistener

Александр Автомонов

unread,
Mar 14, 2014, 8:06:42 AM3/14/14
to highloa...@googlegroups.com
Это на чистой без nginx

пятница, 14 марта 2014 г., 16:06:08 UTC+4 пользователь Александр Автомонов написал:

Vitaliy Okulov

unread,
Mar 14, 2014, 8:16:03 AM3/14/14
to highloa...@googlegroups.com
Судя по конфигам fpm у вас слушает на Unix сокете и nginx к нему также обращается. При этом у вас еще опрашивается memcached.
В итоге что у вас конкретно не работает, нет подключения к серверу или подключение есть, но не грузится страница и nginx отдает http ошибку или что-то еще?


14 марта 2014 г., 15:54 пользователь Александр Автомонов <avto...@gmail.com> написал:

--

---
Вы получили это сообщение, поскольку подписаны на группу "highload-php-ru".
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес highload-php-...@googlegroups.com.

Александр Автомонов

unread,
Mar 14, 2014, 8:50:43 AM3/14/14
to highloa...@googlegroups.com
nginx отдает 500. в логах nginx  *115 bind(192.168.0.223) failed (2: No such file or directory) while connecting to upstream, client: 192.168.0.223, server: localhost, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://unix:/tmp/fpm.sock:", host: "192.168.0.38"

пятница, 14 марта 2014 г., 16:16:03 UTC+4 пользователь Vitaliy Okulov написал:

Александр Автомонов

unread,
Mar 14, 2014, 8:54:23 AM3/14/14
to highloa...@googlegroups.com
Это в ответ на запрос index.php. index лежит в /usr/local/www, pdf файл из той же директории  без проблем отдается nginx'ом

пятница, 14 марта 2014 г., 16:50:43 UTC+4 пользователь Александр Автомонов написал:

Игорь Вавржин

unread,
Mar 14, 2014, 10:59:13 AM3/14/14
to highloa...@googlegroups.com
Значит либо прав нет на чтение, либо конфиг nginx не верный

Отправлено с iPad

14 марта 2014 г., в 19:54, Александр Автомонов <avto...@gmail.com> написал(а):

Александр Автомонов

unread,
Mar 14, 2014, 11:31:36 AM3/14/14
to highloa...@googlegroups.com
На что прав нет? Было бы не плохо если бы мне кто-нибудь указал в каком месте конфиг не верный)))

пятница, 14 марта 2014 г., 18:59:13 UTC+4 пользователь vavr написал:

Игорь Вавржин

unread,
Mar 14, 2014, 11:50:43 AM3/14/14
to highloa...@googlegroups.com
Конфиг nginx в студию + ls -alh в папке где лежит index.php

Отправлено с iPad

14 марта 2014 г., в 22:31, Александр Автомонов <avto...@gmail.com> написал(а):

На что прав нет? Было бы не плохо если бы мне кто-нибудь указал в каком месте конфиг не верный)))

пятница, 14 марта 2014 г., 18:59:13 UTC+4 пользователь vavr написал:
Значит либо прав нет на чтение, либо конфиг nginx не верный

--

Вавржин Игорь

unread,
Mar 14, 2014, 12:44:58 PM3/14/14
to highloa...@googlegroups.com
Увидел конфиг nginx. Попробуйте отключить memcache и запросить php файл.
Если все получится то проблема в мемкэше. Иначе пробовать конфиг нужно

пятница, 14 марта 2014 г. пользователь Игорь Вавржин написал:

Александр Автомонов

unread,
Mar 14, 2014, 1:07:48 PM3/14/14
to highloa...@googlegroups.com
Права на папку с файлами рекурсивно прогнал на 777. Убрал memcached, не помогло, обновленный конфиг вот:
user  www;
worker_processes  2;

error_log  /var/log/nginx.error.log notice;

#pid        logs/nginx.pid;


events 
{
    worker_connections  1024;
    multi_accept on;
}

timer_resolution 1s;

worker_priority -5;



http {
    include       mime.types;
    default_type  application/octet-stream;

    root /usr/local/www;
    
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx.access.log combined buffer=512k flush=5m;

    sendfile off;
    aio on;
    output_buffers 128 256k;
     
    charset utf-8;
    
    client_body_buffer_size 128k;
    client_header_buffer_size 4k;
    
    client_header_timeout 30s;
    
    client_max_body_size 5m;
    
    #error_page 404 errors/404.html
    #error_page 500 502 503 504 50x.html
    
    #keepalive 64;
    keepalive_timeout 120s;
    
    limit_conn_zone $binary_remote_addr zone=addr:20m;
    limit_conn addr 20;
    
    open_file_cache max=1024 inactive=1h;
    open_file_cache_errors on;
    open_log_file_cache max=20 inactive=1h;
    

    server {
        listen       80;
        server_name  localhost;
        
        location ~\.(png|jpg|gip|html|htm|pdf|doc|docx|xls|xlsx|ppt|djvu|js|css)$ {
       try_files $uri /;
       }
        
        #location / {
        #    memcached_buffer_size 256k;
        #    memcached_pass unix:/tmp/memcached.sock;
        #    memcached_connect_timeout 1s;
        #    memcached_read_timeout 1s;
        #    memcached_send_timeout 1s;
    #    set $memcached_key "$uri?$args";
    #    error_page 404 500 502 504 = @fpm;
    #    }

        location /  {
            fastcgi_pass 127.0.0.1:8080;
            fastcgi_index index.php;
            fastcgi_bind $remote_addr;
            fastcgi_buffers 8 32k;
            fastcgi_busy_buffers_size 128k;
            fastcgi_cache off;
            fastcgi_ignore_client_abort on;
            fastcgi_keep_conn on;
            fastcgi_max_temp_file_size 0;
            fastcgi_send_lowat 16k;
            
            include fastcgi_params;
            
            #fastcgi_param SCRIPT_FILENAME index.php;
            #fastcgi_param QUERY_STRING $query_string;            
            #fastcgi_param REQUEST_METHOD $request_method;
            #fastcgi_param CONTENT_TYPE $content_type;
            #fastcgi_param CONTENT_LENGTH $content_length;
            
        }
    }
}

Даже выставил SCRIPT_FILENAME index.php. Так же попробовал перекинуть на TCP. Все равно ничего. 500 в браузере. В логе ошибок nginx:  bind(192.168.0.223) failed (49: Can't assign requested address) while connecting to upstream, client: 192.168.0.223, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:8080", host: "192.168.0.38". index.php лежит по пути /usr/local/www/index.php

пятница, 14 марта 2014 г., 20:44:58 UTC+4 пользователь vavr написал:

Александр Автомонов

unread,
Mar 14, 2014, 1:09:27 PM3/14/14
to highloa...@googlegroups.com
последнее что попробовал это инклудить нативные настройки для fastcgi. Без изменений

пятница, 14 марта 2014 г., 21:07:48 UTC+4 пользователь Александр Автомонов написал:

Dima Golovchenko

unread,
Mar 14, 2014, 1:10:52 PM3/14/14
to highloa...@googlegroups.com

А откуда берётся адрес 192.168.0.223?

14.03.2014 13:07 пользователь "Александр Автомонов" <avto...@gmail.com> написал:
--

Александр Автомонов

unread,
Mar 14, 2014, 1:11:40 PM3/14/14
to highloa...@googlegroups.com
Такое ощущение что проблема все же в fpm, так как статику по тому же /usr/local/www достает без проблем, а root у location для статики и fastcgi один и тот же

Александр Автомонов

unread,
Mar 14, 2014, 1:14:42 PM3/14/14
to highloa...@googlegroups.com
 telnet 127.0.0.1 8080 выдает Connection closed by foreign host

Александр Автомонов

unread,
Mar 14, 2014, 1:16:35 PM3/14/14
to highloa...@googlegroups.com
Адрес клиента с которого конекчусь

пятница, 14 марта 2014 г., 21:10:52 UTC+4 пользователь dimagolov написал:

Vitaliy Okulov

unread,
Mar 14, 2014, 1:17:15 PM3/14/14
to highloa...@googlegroups.com
Вам нужно также поменять адрес и порт в настройках php-fpm.


14 марта 2014 г., 21:14 пользователь Александр Автомонов <avto...@gmail.com> написал:
 telnet 127.0.0.1 8080 выдает Connection closed by foreign host

--

Александр Автомонов

unread,
Mar 14, 2014, 1:25:49 PM3/14/14
to highloa...@googlegroups.com
Там все в порядке. fpm слущает на этом порту

пятница, 14 марта 2014 г., 21:17:15 UTC+4 пользователь Vitaliy Okulov написал:

Dima Golovchenko

unread,
Mar 14, 2014, 1:26:45 PM3/14/14
to highloa...@googlegroups.com

Какой смысл вкладывается в строчку fastcgi_bind $remote_addr; ?

14.03.2014 13:16 пользователь "Александр Автомонов" <avto...@gmail.com> написал:

Александр Автомонов

unread,
Mar 14, 2014, 1:29:34 PM3/14/14
to highloa...@googlegroups.com
Доставить в FPM реальный адрес клиента а не IP nginx'a


14 марта 2014 г., 21:26 пользователь Dima Golovchenko <dima...@gmail.com> написал:

--

---
Вы получили это сообщение, поскольку подписаны на одну из тем в группе "highload-php-ru".
Чтобы отказаться от подписки на эту тему, перейдите на страницу https://groups.google.com/d/topic/highload-php-ru/ipS5hk6LyV0/unsubscribe.
Чтобы отказаться от подписки на эту группу и все входящие в нее темы, отправьте электронное письмо на адрес highload-php-ru +unsub...@googlegroups.com.

Dima Golovchenko

unread,
Mar 14, 2014, 1:36:16 PM3/14/14
to highloa...@googlegroups.com

Иногда лучше читать мануал, а не гадать. Уберите эту строчку

14.03.2014 13:29 пользователь "Александр Автомонов" <avto...@gmail.com> написал:

Александр Автомонов

unread,
Mar 14, 2014, 1:47:35 PM3/14/14
to highloa...@googlegroups.com
Помогло. Спасибо большое. Может заодно и просветите что я не так понял...из документации по fastcgi_bind "Задаёт локальный IP-адрес, который будет использоваться в исходящих соединениях с FastCGI-сервером. В значении параметра допустимо использование переменных (1.3.12). Специальное значение off (1.3.12) отменяет действие унаследованной с предыдущего уровня конфигурации директивы fastcgi_bind, позволяя системе самостоятельно выбирать локальный IP-адрес.". Что она задает если не то, что я думал?


14 марта 2014 г., 21:36 пользователь Dima Golovchenko <dima...@gmail.com> написал:

Dima Golovchenko

unread,
Mar 14, 2014, 2:31:47 PM3/14/14
to highloa...@googlegroups.com
Александр, TCP соединение просиходит между двумя хостами, у одного и у второго должны быть IP адреса, чтобы тот, кто получает запрос мог послать ответ. Если nginx живет на каком-то хосте и коннектится к php-fpm по IP, то ему нужно устанавливать соединение с какого-то конкретного адреса. Если возникает неоднозначность с какого адреса это соединение устанавливать (например для виртуальных хостов), то и введена эта директива.

Eugene Klimov

unread,
Mar 15, 2014, 6:09:20 AM3/15/14
to highloa...@googlegroups.com
поясню
BIND опции обычно используются там где у вашего компа несколько
Ethernet интерфейсов и надо либо слушать на каком то конкретном, либо
конектиться с какого то конкретного адреса

15 марта 2014 г., 0:31 пользователь Dima Golovchenko

Александр Автомонов

unread,
Mar 15, 2014, 7:54:46 AM3/15/14
to highloa...@googlegroups.com
Проблема понята и решена. Всем спасибо за участие!
Reply all
Reply to author
Forward
0 new messages