鍍金池/ 問答/PHP  Linux/ lnmp搭建的服務(wù)器過段時間總是會訪問不了

lnmp搭建的服務(wù)器過段時間總是會訪問不了

部署在linux上的lnmp架構(gòu)之前一直運行正常,最近有一臺服務(wù)器總是會突然掛掉。
檢查報錯日志是這樣的

2017/12/14 03:29:12 [info] 25981#0: *133682417 recv() failed (104: Connection reset by peer) while waiting for request, client: 100.97.219.3, server: 0.0.0.0:80

nginx的配置如下:

user www www;
worker_processes auto;

error_log /data/wwwlogs/error_nginx.log info;
pid /var/run/nginx.pid;
worker_rlimit_nofile 51200;

events {
  use epoll;
  worker_connections 51200;
  multi_accept on;
}
http {
  #limit_req_zone $limit zone=one:10m rate=100r/s;
  #limit_conn_zone $limit zone=addr:10m;
  include mime.types;
  default_type application/octet-stream;
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 1024m;
  client_body_buffer_size 10m;
  sendfile on;
  tcp_nopush on;
  keepalive_timeout 120;
  server_tokens off;
  tcp_nodelay on;

  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;
  fastcgi_intercept_errors on;
  
  server {
   ......    
  }
}

php-fpm的配置如下:

[global]
pid = run/php-fpm.pid
error_log = log/php-fpm.log
log_level = warning

emergency_restart_threshold = 30
emergency_restart_interval = 60s
process_control_timeout = 5s
daemonize = yes

;;;;;;;;;;;;;;;;;;;;
; Pool Definitions ;
;;;;;;;;;;;;;;;;;;;;

[www]
listen = /dev/shm/php-cgi.sock
listen.backlog = 4096
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www

pm = dynamic
pm.max_children = 128
pm.start_servers = 11
pm.min_spare_servers = 8
pm.max_spare_servers = 16
pm.max_requests = 2048
pm.process_idle_timeout = 10s
request_terminate_timeout = 0
request_slowlog_timeout = 0

pm.status_path = /php-fpm_status
slowlog = log/slow.log
rlimit_files = 51200
rlimit_core = 0

catch_workers_output = yes
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
回答
編輯回答
鐧簞噯

你說的掛掉是一個請求失敗還是整個進(jìn)程死了?
如果一個一個請求失敗的話. 檢查是不是程序有使用長連接. redis. mysql 之類的. 有可能是連接空閑時間過長. 被斷開了.

2017年10月15日 07:57
編輯回答
祉小皓

增加nginx配置里面的buffer和timeout相關(guān)的值試試,還是先看一下nginx和php-fpm的errorlog,日志里反饋的信息很重要

2017年4月28日 05:53
編輯回答
喜歡你

是不是網(wǎng)卡沒有設(shè)置開機(jī)自啟動啊

2018年2月12日 08:37
編輯回答
情殺
error_log /data/wwwlogs/error_nginx.log crit;

把 nginx的 報錯級別調(diào)整一下

2017年2月27日 11:43