我的nginx配置有问题,我的服务器工作正常但是在1或2天后它就会挂起并停止响应。无法再连接到服务器了。
(7) Failed to connect to XX.XX.XX.XX port 80: Connection refused
这台服务器的主要工作是运行繁重的PHP任务,我每隔5秒就为许多任务运行cron作业。重启帮助,nginx在接下来的1-2天内正常工作。我没有任何错误日志,nginx不会在/var/log/nginx/error.log中报告任何内容。它只是失败了所有连接。任何想法从哪里开始寻找问题?
我在Ubuntu 16.04上运行nginx,2个CPU,4 GB RAM和PHP 7.0。 nginx版本:nginx / 1.10.0(Ubuntu)
这是配置文件:
user www-data;
worker_processes 2;
pid /run/nginx.pid;
events {
worker_connections 4096;
#multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 300;
types_hash_max_size 2048;
server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
这是默认文件:
server {
large_client_header_buffers 4 128k;
listen XX:XX:XX:XX:80;
set $root_path '/var/www/web/public/';
root $root_path;
index index.php;
server_name XX:XX:XX:XX;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_read_timeout 14400;
proxy_set_header Connection "";
proxy_http_version 1.1;
}
location /status {
stub_status on;
access_log off;
allow XX:XX:XX:XX;
deny all;
}
location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
root $root_path;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
location ~ /\.ht {
deny all;
}
}
主要的是,我运行的cron工作,例如:
* * * * * sleep 5; curl --request GET http://XX:XX:XX:XX/queue/fire > /dev/null 2>&1
* * * * * sleep 10; curl --request GET http://XX:XX:XX:XX/queue/fire > /dev/null 2>&1
* * * * * sleep 15; curl --request GET http://XX:XX:XX:XX/queue/fire > /dev/null 2>&1
* * * * * sleep 20; curl --request GET http://XX:XX:XX:XX/queue/fire > /dev/null 2>&1
* * * * * sleep 25; curl --request GET http://XX:XX:XX:XX/queue/fire > /dev/null 2>&1
* * * * * sleep 30; curl --request GET http://XX:XX:XX:XX/queue/fire > /dev/null 2>&1
* * * * * sleep 35; curl --request GET http://XX:XX:XX:XX/queue/fire > /dev/null 2>&1
* * * * * sleep 40; curl --request GET http://XX:XX:XX:XX/queue/fire > /dev/null 2>&1
* * * * * sleep 45; curl --request GET http://XX:XX:XX:XX/queue/fire > /dev/null 2>&1
* * * * * sleep 50; curl --request GET http://XX:XX:XX:XX/queue/fire > /dev/null 2>&1
等
更新
PHP FPM状态
* php7.0-fpm.service - The PHP 7.0 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2017-01-13 10:46:41 CET; 3 days ago
Process: 1439 ExecStartPre=/usr/lib/php/php7.0-fpm-checkconf (code=exited, status=0/SUCCESS)
Main PID: 1662 (php-fpm7.0)
Status: "Processes active: 0, idle: 25, Requests: 164215, slow: 0, Traffic: 0req/sec"
Tasks: 26
Memory: 377.3M
CPU: 5h 57min 32.279s
CGroup: /system.slice/php7.0-fpm.service
|- 1662 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
|- 1752 php-fpm: pool www
|- 8751 php-fpm: pool www
|-12078 php-fpm: pool www
|-14053 php-fpm: pool www
|-14338 php-fpm: pool www
|-14639 php-fpm: pool www
|-14763 php-fpm: pool www
|-16188 php-fpm: pool www
|-16212 php-fpm: pool www
|-16900 php-fpm: pool www
|-17620 php-fpm: pool www
|-17621 php-fpm: pool www
|-17766 php-fpm: pool www
|-18802 php-fpm: pool www
|-19084 php-fpm: pool www
|-22064 php-fpm: pool www
|-24245 php-fpm: pool www
|-24690 php-fpm: pool www
|-25120 php-fpm: pool www
|-27714 php-fpm: pool www
|-29415 php-fpm: pool www
|-30182 php-fpm: pool www
|-30391 php-fpm: pool www
|-32053 php-fpm: pool www
`-32358 php-fpm: pool www
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
答案 0 :(得分:1)
我会查看php fpm日志。也许用完了php fpm进程。