Como estava testando o carregamento do meu site hoje (usando blitz.io ); apesar de muita RAM (mais de 50%) e poder de CPU (mais de 70%) disponíveis, os resultados mostraram que meu site começou a atingir um certo número de usuários simultâneos por segundo.
O log de erros do Nginx para o meu site (/var/log/nginx/example.com.error.log) mostrou algo assim:
2013/02/12 19:03:57 [error] 13749#0: *3175 connect() to
unix:/var/run/php5-fpm.sock failed (11: Resource temporarily
unavailable) while connecting to upstream, client: 54.123.456.46,
server: example.com, request: "GET / HTTP/1.1", upstream:
"fastcgi://unix:/var/run/php5-fpm.sock:", host: "example.com"
Pesquisando no erro, levei-me a esta resposta , que indica o uso da conexão TCP \ IP em vez do soquete unix como solução para o problema; como os problemas "do soquete do unix em casos de alta carga são bem conhecidos" .
Então, como sugerido pela resposta:
-
Substitui listen = /var/run/php5-fpm.sock
por listen 127.0.0.1:9000
em /etc/php5/fpm/pool.d/www.conf
-
Como não há /etc/nginx/php_location
no meu distrio (Debian Wheezy), não fiz nada sobre isso.
-
Como uso fastcgi_pass unix:/var/run/php5-fpm.sock;
no arquivo de configuração Nginx do meu site, ou seja, /etc/nginx/sites-available/example.com, substituí-lo por fastcgi_pass 127.0.0.1:9000;
Agora, o problema é que recebo um erro 502 Bad Gateway
quando visito meu site. Sim, eu fiz reload
Nginx e PHP-FPM. O que estou fazendo de errado? (Um novato total aqui, fazendo o meu melhor para aprender fazendo.)
Caso isso seja relevante, quando eu faço sudo service php5-fpm restart
, recebo este erro:
[FAIL] Restarting PHP5 FastCGI Process Manager: php5-fpm failed!
E isso está acontecendo apenas desde que fiz as alterações mencionadas. Como posso consertar isso?
Por favor, deixe-me saber se devo obter mais informações.
UPDATE
O arquivo /etc/nginx/sites-available/default
diz isto:
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
# fastcgi_pass unix:/var/run/php5-fpm.sock;
Então, isso significa que, se meu servidor estiver executando o PHP-FPM, DEVE , sem uma opção, use /var/run/php5-fpm.sock
?