Возникла проблема с nginx

12
L1
На сайте с 13.10.2009
Offline
23
6057

Возникла проблема с nginx.

Сервер начал загибаться. зайдя в top я увидел шо один процесс nginx использует все 100% процессора и увеличивает% оперативной памяти, и залезает в своп. Спустя некоторое время сервер розгружаеться. такое бывает не часто, уже где-то 2-3 раза было замечено

Других ресурсоемких процессов не было, сервер не является перегружен.

Если это бы был ДДОС - в топ висел бы и какой-то процесс пользователя(я так предполагаю), которого досят, но ничего такого не замечено.

Конфигурация - nginx - apache - fcgi

Интересует при каких условиях могло быть такое большое увеличение нагрузки на nginx. Отключение одного из аккаунтов решило проблему, но в топе я не видел большой нагрузки на скрипты этого аккаунта, нагрузка была такая как всегда (LA сервера ~ 0.2).

M
На сайте с 16.09.2009
Offline
278
#1

версия nginx?

конфиг?

error.log на момент проблемы?

я бы посмотрел что происходит с nginx в это время, чем он занят. хотябы strace

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
M
На сайте с 01.12.2009
Offline
235
#2

Что за OS ?

Администратор Linux,Freebsd. построения крупных проектов.
L1
На сайте с 13.10.2009
Offline
23
#3

В момент нагрузки на nginx 1 раз:

s1:~# cat /var/log/nginx/error.log |grep 10:18:*
2010/02/13 10:18:02 [error] 5724#0: *727398 open() "/var/www/user1/data/www/site1.com/images/sciphone.jpg" failed (2: No such file or directory), client: 178.95.45.X, server: tehnomarket.in.ua, request: "GET /images/sciphone.jpg HTTP/1.1", host: "site1.com", referrer: "http://site1.com/product_info.php?cPath=38&products_id=24"
2010/02/13 10:18:02 [error] 5724#0: *727335 open() "/var/www/user1/data/www/site1.com/images/br.gif" failed (2: No such file or directory), client: 178.95.45.X, server: tehnomarket.in.ua, request: "GET /images/br.gif HTTP/1.1", host: "site1.com", referrer: "http://site1.com/product_info.php?cPath=38&products_id=24"
2010/02/13 10:18:46 [error] 5724#0: *727717 upstream prematurely closed connection while reading response header from upstream, client: 77.88.42.X, server: site2.com, request: "GET /pickup/10-shho-dratuye-zhinok-u-cholovikax.html HTTP/1.1", upstream: "http://MyServerIP:8080/pickup/10-shho-dratuye-zhinok-u-cholovikax.html", host: "site2.com"
2010/02/13 10:18:41 [emerg] 3392#0: malloc() 10737418240 bytes failed (12: Cannot allocate memory)
2010/02/13 16:10:18 [error] 3415#0: *18713 access forbidden by rule, client: 95.132.193.X, server: site3.com, request: "GET /favicon.ico HTTP/1.1", host: "site3.com"
2010/02/13 22:10:18 [error] 31973#0: *53773 access forbidden by rule, client: 95.134.47.X, server: site3.com, request: "GET /favicon.ico HTTP/1.1", host: "site3.com"

в другой раз:

s1:~# cat /var/log/nginx/error.log |grep 11:00:*
2010/02/13 11:00:03 [error] 8479#0: *619 open() "/var/www/nginx-default/server-status" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /server-status?auto HTTP/1.1", host: "127.0.0.1:80"
2010/02/13 11:00:23 [error] 8479#0: *612 access forbidden by rule, client: 77.88.42.X, server: site4.com, request: "GET /sr/tag/eee-pc-1004dn/ HTTP/1.1", host: "site4.com"
2010/02/13 11:00:32 [error] 8966#0: *627 access forbidden by rule, client: 66.249.65.X, server: site4.com, request: "GET /vi/tag/hadzhety/page/124/ HTTP/1.1", host: "site4.com"
2010/02/13 11:00:52 [error] 8966#0: *633 access forbidden by rule, client: 77.88.42.X, server: site4.com, request: "GET /et/2009/04/sonyachna-batareya-u-knyhu-rekordiv-hinnesa/ HTTP/1.1", host: "site4.com"
2010/02/13 11:00:49 [emerg] 3401#0: malloc() 10737418240 bytes failed (12: Cannot allocate memory)
2010/02/13 19:11:00 [error] 3415#0: *38641 access forbidden by rule, client: 94.100.181.X, server: site4.com, request: "GET /2009/06/kyshenkovyj-perenosnyj-proektorfoto/ HTTP/1.0", host: "site4.com"

другие

s1:~# cat /var/log/nginx/error.log |grep emerg
2010/02/13 10:18:41 [emerg] 3392#0: malloc() 10737418240 bytes failed (12: Cannot allocate memory)
2010/02/13 10:49:32 [emerg] 3401#0: unknown directive "proxy_red" in /etc/nginx/nginx.conf:1441
2010/02/13 10:53:11 [emerg] 3401#0: unknown directive "ttp://Myip:8080" in /etc/nginx/nginx.conf:1213
2010/02/13 10:59:48 [emerg] 3401#0: unknown directive "t" in /etc/nginx/nginx.conf:85321509
2010/02/13 11:00:49 [emerg] 3401#0: malloc() 10737418240 bytes failed (12: Cannot allocate memory)
2010/02/13 21:34:49 [emerg] 3414#0: directive "location" has no opening "{" in /etc/nginx/nginx.conf:1002

конфиг nginx дефолтный почти

user www-data;
worker_processes 1;

error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
##My conf
server_names_hash_bucket_size 128;
access_log /var/log/nginx/access.log;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;

gzip on;

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
client_max_body_size 16m;
server {
listen MyServerIP:80;
server_name example.com www.example.com;
rewrite ^(/manager/.*)$ https://$host$1 permanent;
location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
proxy_pass http://MyServerIP:8080;
proxy_redirect http://example.com: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 / {
proxy_pass http://MyServerIP:8080;
proxy_redirect http://example.com: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/dream/data/www/example.com;
access_log /var/www/httpd-logs/example.com.access.log;
error_page 404 = @fallback;
}
location @fallback {
proxy_pass http://MyServerIP: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;
}
}

OS - Debian lenny

s1:~# nginx -v
nginx version: nginx/0.6.32
M
На сайте с 01.12.2009
Offline
235
#4

памяти мало на сервере

M
На сайте с 16.09.2009
Offline
278
#5

начать с gzip off

L1
На сайте с 13.10.2009
Offline
23
#6
madoff:
памяти мало на сервере

Core I7, 8gb памяти...

6960552k free.

nginx сжырает всю память...

После такого сжырания падает MYSQL...

Такое сжырание почалось опять когда я активировал некоторый акаунт... сервер поколбасило - упала бд - потом все стало норм.

Панель ISPManager

M
На сайте с 01.12.2009
Offline
235
#7

Ищите что сжирает вашу память, или кто сжирает.

L1
На сайте с 13.10.2009
Offline
23
#8
madoff:
Ищите что сжирает вашу память, или кто сжирает.

я писал - nginx сжырает всю память...

myhand начать с gzip off

попробую...

R
На сайте с 14.02.2010
Offline
77
#9

worker_connections 1024

client_max_body_size 16m;

16m*1024= 16GB

итого нужно всего лишь 512 одновременных POST-запросов чтоб выбрать все 8гигов ОЗУ и положить ваш nginx в глубочайший своп. ваш сервер прям находка для DOS-a ;)

а так как в вашем конфиге отсутствуют client_header_timeout и client_body_timeout то совсем не удивительно, что оно у вас валится

Himiko
На сайте с 28.08.2008
Offline
560
#10

r0mik, client_max_body_size не говорит о том, что такой объём будет в оперативке при каждом запросе к сайту.

У меня там вообще 128Mb.

Да и не бывают 1024 коннекта использованы на 100%.

Если говорить про ДДОС, то не обязаны коннекты вообще доходить до nginx.

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий