Tôi có một máy chủ hoạt động tốt cho đến ngày 3 tháng 10 năm 2013 lúc 10:50 khi nó bắt đầu liên tục trả lại lỗi "502 Bad Gateway" cho khách hàng.
Khoảng 4 trên 5 yêu cầu trình duyệt thành công nhưng khoảng 1 trong 5 yêu cầu với 502.
Nhật ký lỗi nginx chứa nhiều hàng trăm lỗi này;
2013/10/05 06:28:17 [error] 3111#0: *54528 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 66.249.66.75, server: www.bec-components.co.uk request: ""GET /?_n=Fridgefreezer/Hotpoint/8591P;_i=x8078 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.bec-components.co.uk"
Tuy nhiên, nhật ký lỗi PHP không chứa bất kỳ lỗi phù hợp.
Có cách nào để PHP cung cấp cho tôi thêm thông tin về lý do tại sao nó đặt lại kết nối không?
Đây là nginx.conf
;
user www-data;
worker_processes 4;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 30;
tcp_nodelay on;
client_max_body_size 100m;
gzip on;
gzip_types text/plain application/xml text/javascript application/x-javascript text/css;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
include /gvol/sites/*/nginx.conf;
}
Và đây là .conf
trang web này;
server {
server_name www.bec-components.co.uk bec3.uk.to bec4.uk.to bec.home;
root /gvol/sites/bec/www/;
index index.php index.html;
location ~ \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires 2592000; # 30 days
log_not_found off;
}
## Trigger client to download instead of display '.xml' files.
location ~ \.xml$ {
add_header Content-disposition "attachment; filename=$1";
}
location ~ \.php$ {
fastcgi_read_timeout 3600;
include /etc/nginx/fastcgi_params;
keepalive_timeout 0;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
}
## bec-components.co.uk ##
server {
server_name bec-components.co.uk;
rewrite ^/(.*) http://www.bec-components.co.uk$1 permanent;
}
PHP
kịch bản. Tôi không sử dụng php-fpm
, tôi chỉ chạy php-fastcgi
bằng cách làm php-cgi -b 127.0.0.1:9000
. Nó đã hoạt động không có lỗi trong 3 năm. Tôi không thể tìm ra lý do tại sao nó đã phát triển vấn đề này.
php-cgi -b 127.0.0.1:9000
) bị lỗi không liên tục, có lẽ do lưu lượng truy cập tăng và thiếu tài nguyên.