Привет всем.
Сервер не справляется с потоком запросов и через время выдает 503, потом через минут 5 снова может обрабатывать запросы. При чем эту ошибку выдает одному клиенту, а остальные в этот момент могут заходить на сайт.
Провел немного экспериментов с server-status. С другого сервера делаю подряд несколько десятков запросов с помощью wget, через некоторое время получаю 503. Смотрю в server-status там есть запрос, через время запрос пропадает. Пробую еще раз сделать запрос страницы - снова получаю 503, server-status показывает, что запрос обрабатывается. Через некоторое время на этих слотах обрабатываются без проблем другие запросы, но при попытке обратиться с того сервера снова 503.
Похоже, словно что-то банит хост. если много запросов. Как понять в чем затык, где что еще можно посмотреть?
Сервер debian с nginx и apache
В логах access.log nginx обнаружил:
"GET /..../ HTTP/1.0" 503 188 "-" "Wget/1.11.4"
server-status показывает в слоте 2-0, как раз процесс, который возвращает 503
Apache Server Status for -----.ru
Server Version: Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze5 with Suhosin-Patch mod_ssl/2.2.16 OpenSSL/0.9.8o
Server Built: Sep 25 2011 22:18:56
Current Time: Monday, 02-Jul-2012 12:36:02 MSK
Restart Time: Monday, 02-Jul-2012 12:32:02 MSK
Parent Server Generation: 0
Server uptime: 3 minutes 59 seconds
Total accesses: 73 - Total Traffic: 150 kB
CPU Usage: u5.61 s1.09 cu0 cs0 - 2.8% CPU load
.305 requests/sec - 642 B/second - 2104 B/request
1 requests currently being processed, 2 idle workers
_W_.............................................................
................................................................
................................................................
................................................................
Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"C" Closing connection, "L" Logging, "G" Gracefully finishing,
"I" Idle cleanup of worker, "." Open slot with no current process
Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request
0-0 22123 0/25/25 _ 2.00 6 0 0.0 0.06 0.06 -.-.-.- -----.ru GET /favicon.ico HTTP/1.1
1-0 22124 0/25/25 W 2.28 0 0 0.0 0.07 0.07 -.-.-.- -----.ru GET /server-status HTTP/1.1
2-0 22125 0/23/23 _ 2.42 3 74 0.0 0.02 0.02 -.-.-.- -----.ru GET /.../ HTTP/1.0
Конфиги
nginx:
user www-data;
worker_processes 1;
timer_resolution 100ms;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
use epoll;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] $host $request "$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$server_port"';
access_log /var/log/nginx/access.log;
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=cache:30m inactive=60m max_size=500m;
#sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 20;
tcp_nodelay on;
reset_timedout_connection on;
gzip on;
gzip_min_length 1300;
gzip_buffers 8 32k;
gzip_types text/plain text/css
text/javascript application/x-javascript
text/xml application/xml application/xml+rss;
gzip_http_version 1.1;
gzip_proxied any;
gzip_comp_level 3;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
client_max_body_size 16m;
log_format isp '$bytes_sent $request_length';
server {
listen -.-.-.-:80;
server_name -----.ru forum------.ru www.forum------.ru www.-----.ru;
rewrite ^(/manager/.*)$ https://$host$1 permanent;
error_page 404 = @fallback;
location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
proxy_pass http://-.-.-.-:8080;
proxy_redirect http://-----.ru:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
gzip_static on;
proxy_cache_valid 200 301 302 304 60m;
proxy_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
proxy_hide_header "Set-Cookie";
proxy_ignore_headers "Cache-Control" "Expires";
proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_cache cache;
proxy_pass http://-.-.-.-:8080;
proxy_redirect http://-----.ru:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /var/www/-----/data/www/-----.ru;
valid_referers server_names none blocked ~\.google\. images.yandex.ru;
if ($invalid_referer) {
return 403;
}
access_log /var/www/httpd-logs/-----.ru.access-n.log ;
access_log /var/www/nginx-logs/----- isp;
}
location @fallback {
proxy_pass http://-.-.-.-:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
apache:
LockFile ${APACHE_LOCK_DIR}/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 10
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 2
MaxSpareServers 7
MaxClients 64
MaxRequestsPerChild 128
</IfModule>
<IfModule mpm_worker_module>
...
</IfModule>
<IfModule mpm_event_module>
...
</IfModule>
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy all
</Files>
DefaultType text/plain
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
# Include module configuration:
<VirtualHost -.-.-.-:8080>
ServerName ----.ru
DocumentRoot /var/www/----/data/www/----.ru
SuexecUserGroup ---- ----
CustomLog /var/www/httpd-logs/----.ru.access.log combined
ErrorLog /var/www/httpd-logs/----.ru.error.log
ServerAlias forum-----.ru www.forum-----.ru www.----.ru
ServerAdmin it@seocomplex.ru
php_admin_value open_basedir "/var/www/----/data:."
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f it@seocomplex.ru"
php_admin_value upload_tmp_dir "/var/www/----/data/mod-tmp"
php_admin_value session.save_path "/var/www/----/data/mod-tmp"
AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
AddType application/x-httpd-php-source .phps
</VirtualHost>
Include mods-enabled/*.load
Include mods-enabled/*.conf
Include httpd.conf
Include ports.conf
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
Include conf.d/
Include sites-enabled/
NameVirtualHost *:443
<VirtualHost _default_:443>
ServerName www.example.com:443
SSLEngine on
SSLCertificateFile /etc/apache2/ssl.crt/server.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/server.key
</VirtualHost>
Include /usr/local/ispmgr/etc/ispmgr.inc
<Directory /var/www/----/data/www/----.ru>
php_admin_value open_basedir "/var/www/-----/data:."
</Directory>
NameVirtualHost -.-.-.-:8080