Estou tendo um nginx rodando no debian. O Nginx será recarregado a cada 2 minutos para buscar vhosts recém-criados. Depois de um tempo, novos vhosts não estavam mais carregando, mas vhosts antigos continuavam sendo servidos pelo nginx
No meu log de erros do nginx, posso encontrar vários erros.
2014/08/10 06:30:05 [alert] 27891#0: epoll_ctl(1, 4) failed (9: Bad file descriptor)
2014/08/10 06:30:05 [alert] 27892#0: close() channel failed (9: Bad file descriptor)
2014/08/10 06:30:05 [alert] 27893#0: close() channel failed (9: Bad file descriptor)
2014/08/10 06:30:19 [alert] 4806#0: worker process 27891 exited with fatal code 2 and can not be respawn
2014/08/10 06:30:19 [alert] 4806#0: sendmsg() failed (9: Bad file descriptor)
2014/08/10 06:30:05 [alert] 27894#0: close() channel failed (9: Bad file descriptor)
2014/08/10 06:30:20 [alert] 4806#0: sendmsg() failed (9: Bad file descriptor)
2014/08/10 06:30:20 [alert] 4806#0: sendmsg() failed (9: Bad file descriptor)
2014/08/10 06:30:20 [alert] 4806#0: sendmsg() failed (9: Bad file descriptor)
2014/08/10 06:30:20 [alert] 4806#0: sendmsg() failed (9: Bad file descriptor)
Eu tentei encontrar uma solução no passado e acabei adicionando
worker_rlimit_nofile 300000;
Mas parece que isso não funcionou.
Tenho a sensação de que minha caixa fica sem memória em algum momento, mas não totalmente certa.
Reiniciar o nginx corrigiu o problema, mas temo que eu possa me deparar com isso novamente depois de um tempo.
Outra coisa estranha que eu vi é, depois de reiniciar o nginx, o swap simplesmente desapareceu nas minhas estatísticas. (veja screenshots).
Casovocêqueiravermeunginx.conf,aquiestá:
userwww-data;worker_processes4;worker_rlimit_nofile300000;error_log/var/log/nginx/error.log;pid/var/run/nginx.pid;events{worker_connections2000;#multi_accepton;}http{include/etc/nginx/mime.types;server_names_hash_max_size812000;geoip_country/etc/nginx/geoip/GeoIP.dat;#thecountryIPdatabasegeoip_city/etc/nginx/geoip/GeoLiteCity.dat;#thecityIPdatabaselog_formatwithhost'$host-$remote_addr-$remote_user[$time_local]''"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
# access_log /var/log/nginx/access.log withhost;
# set_real_ip_from 141.101.64.0/18;
# set_real_ip_from 108.162.192.0/18;
# set_real_ip_from 190.93.240.0/20;
# set_real_ip_from 2400:cb00::/32;
# set_real_ip_from 2606:4700::/32;
set_real_ip_from 69.164.223.55;
set_real_ip_from 212.123.14.6;
set_real_ip_from 192.168.255.17;
real_ip_header X-Forwarded-For;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
server_tokens off;
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
include /etc/nginx/conf.d/*.conf;
include /nfs/vhosts/*;
include /etc/nginx/sites-enabled/*;
}
Espero que alguém possa me ajudar a identificar a causa desse problema e me ajudar a corrigi-lo.
Atenciosamente!
Tags nginx php-fpm web-server