Автор Тема: nginx + apache ограничения  (Прочитано 2525 раз)

Оффлайн Schum@cheR

  • Участник
  • *
  • Сообщений: 71
    • http://twitter.com/schumachermkua
nginx + apache ограничения
« : 31.12.2010 20:30:53 »
Вообщем сделал связку nginx + apache2 , апачт бек енд а нгикс фронт енд, но вот возник вопрос...

Если просто в браузере сделать ctrl + R  и захать его на минуту то сервер переполняеться мёртными запросами apache ... до 80% загрузка...

как в конфигах устранить сие безобразие ?  ???

заранее спасибо всем за ответы, с наступающим:)
http://twitter.com/schumachermkua - Мой Твиттер

Оффлайн Schum@cheR

  • Участник
  • *
  • Сообщений: 71
    • http://twitter.com/schumachermkua
Re: nginx + apache ограничения
« Ответ #1 : 02.01.2011 02:23:54 »
чё всё так круто гудят что не кто не может ответить на елементарный вопрос?  :)
http://twitter.com/schumachermkua - Мой Твиттер

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: nginx + apache ограничения
« Ответ #2 : 02.01.2011 07:46:08 »
Спросите в рассылке sysadmins.

Оффлайн Schum@cheR

  • Участник
  • *
  • Сообщений: 71
    • http://twitter.com/schumachermkua
Re: nginx + apache ограничения
« Ответ #3 : 02.01.2011 17:22:04 »
а я не люблю через рассылку общаться, даёш форум в народ...
http://twitter.com/schumachermkua - Мой Твиттер

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: nginx + apache ограничения
« Ответ #4 : 02.01.2011 17:25:57 »
а я не люблю через рассылку общаться, даёш форум в народ...
Первая мысль - это ваши проблемы.
Вторая - я не хотел вас обидеть.

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 242
Re: nginx + apache ограничения
« Ответ #5 : 02.01.2011 19:34:56 »
ну так конфиг nginx показывайте.

Оффлайн dubrsl

  • alt linux team
  • ***
  • Сообщений: 238
Re: nginx + apache ограничения
« Ответ #6 : 04.01.2011 00:27:15 »
Вообщем сделал связку nginx + apache2 , апачт бек енд а нгикс фронт енд, но вот возник вопрос...
Если просто в браузере сделать ctrl + R  и захать его на минуту то сервер переполняеться мёртными запросами apache ... до 80% загрузка...
Конфиги и логи  в студию.
И что такое "мёртными запросами " ?
Можно примерчик?
WBR,
Slava

Оффлайн Schum@cheR

  • Участник
  • *
  • Сообщений: 71
    • http://twitter.com/schumachermkua
Re: nginx + apache ограничения
« Ответ #7 : 05.01.2011 14:31:22 »
cat ./nginx.conf
# see http://nginx.net for info & docs

worker_processes  1;
timer_resolution 100ms;
worker_priority -5;


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

events {
worker_connections  1024;
use epoll;

}

include /etc/nginx/conf-enabled.d/*.conf;

http {
proxy_temp_path /var/spool/nginx/tmp/proxy;
fastcgi_temp_path /var/spool/nginx/tmp/fastcgi;
client_body_temp_path /var/spool/nginx/tmp/client;

#limit_req_zone $binary_remote_addr zone=two:10m rate=2r/s;
#limit_zone slimits $binary_remote_addr 1m;
#limit_conn slimits 5;




#################
        log_format main
                '$remote_addr - $remote_user [$time_local] '
                '"$request" $status $bytes_sent '
                '"$http_referer" "$http_user_agent" '
                '"$gzip_ratio"';


gzip on;
gzip_min_length 1100;
gzip_buffers 64 8k;
gzip_comp_level 3;
gzip_http_version 1.1;
gzip_proxied any;
gzip_types text/plain application/xml application/x-javascript text/css;

server_tokens off;


sendfile on;         sendfile_max_chunk  128k;
tcp_nopush on;
        tcp_nodelay on;
       
        ignore_invalid_headers on;


#############################




include       /etc/nginx/mime.types;
default_type  application/octet-stream;

proxy_read_timeout 30s; #
proxy_send_timeout 30s;

#gzip  on;

# text/html doesn't need to be defined there, it's compressed always
# gzip_types text/plain text/css text/xml application/x-javascript application/atom+xml;

# gzip_comp_level 9;
include /etc/nginx/sites-available.d/*.conf;
}
## schumacher.org.ua
###############################
server {
## listen  localhost:80;
server_name host2.ru www.host2.ru;
location / {
    root /var/www/vhosts/host2.ru;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://127.0.0.1:81/;
}
access_log  /var/log/nginx/access.log;
  location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$ {
          root /var/www/vhosts/host2.ru;
      }
}
## iddc.org.ua
##############################
server {
## listen  localhost:80;
server_name host1.ua www.host1.ua;
location / {
    root /var/www/vhosts/host1.ua;
proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://127.0.0.1:81/;

}
access_log  /var/log/nginx/access.log;
  location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$ {
          root /var/www/vhosts/host1.ua;
      }
}


cat ./httpd2.conf
Listen 127.0.0.1:81
ServerRoot "/etc/httpd2"
<IfModule prefork.c>
StartServers 20
MinSpareServers 5
MaxSpareServers 10
ServerLimit 20
MaxClients 20
MaxRequestsPerChild 10
</IfModule>

LoadModule rpaf_module /etc/httpd2/modules/mod_rpaf.so
<IfModule mod_rpaf.c>
RPAFenable On #Включаем модуль
RPAFproxy_ips 127.0.0.1 81.25.24.5 localhost#Адрес прокси
RPAFsethostname On #Определять удаленные адресы
</IfModule>

# № 1
#мой хост
<VirtualHost *:81>
DocumentRoot /var/www/vhosts/host1.ua
ServerName host1.ua
ServerAlias  www.host1.ua

</VirtualHost>
#2
#мой хост 2
<VirtualHost *:81>
DocumentRoot /var/www/vhosts/host2.ru
ServerName host2.ru
ServerAlias www.host2.ru
</VirtualHost>

при такой конфигурации заходиш на хост1 или хост2 зажимаеш в браузере "обновить" (Ctrl+R) ... далее
top -d 1
и видем такую картину:
  949 apache2   20   0 72184  19M 4612 S  0.0  1.3   0:03.30 httpd2                                                                                         
  954 apache2   20   0 71936  19M 4612 S  0.0  1.3   0:03.66 httpd2                                                                                         
  955 apache2   20   0 71928  19M 4608 S  0.0  1.3   0:02.82 httpd2                                                                                         
  962 apache2   20   0 72184  19M 4556 S  0.0  1.3   0:02.20 httpd2                                                                                         
 1070 apache2   20   0 71904  18M 4492 S  0.0  1.2   0:00.64 httpd2                                                                                         
 1079 apache2   20   0 71904  18M 4492 S  0.0  1.2   0:00.64 httpd2                                                                                         
 1080 apache2   20   0 71904  18M 4492 S  0.0  1.2   0:00.64 httpd2                                                                                         
 1085 apache2   20   0 66960  13M 4164 S  0.0  0.9   0:00.12 httpd2
и таких процесов может быть больше и больше... пока загрузка не подымиться до 90%.... и процессы по истяжению доооолгого времени не "отомрут" сами...

Тоесть по сути сервер не может противостоять даже самой простой dos атаке от одного лица...

Поэтому повторяю вопрос:
Как ограничить количество процесов припадающих на одну душу населения? Как уменьшить нагрузку на сайт?
http://twitter.com/schumachermkua - Мой Твиттер

Оффлайн dubrsl

  • alt linux team
  • ***
  • Сообщений: 238
Re: nginx + apache ограничения
« Ответ #8 : 05.01.2011 15:37:08 »
А если nginx убрать и сразу на апач, то все работает?
Если да, то у Вас конфиг nginx не правильный.
WBR,
Slava

Оффлайн Schum@cheR

  • Участник
  • *
  • Сообщений: 71
    • http://twitter.com/schumachermkua
Re: nginx + apache ограничения
« Ответ #9 : 05.01.2011 16:00:50 »
А если nginx убрать и сразу на апач, то все работает?
Если да, то у Вас конфиг nginx не правильный.
Я спрашиваю какой конкретно конфигурацией (переменой) nginx или apache ограничивается количество процессов на 1 юзера, хочу чтобы один юзер мог вызывать максимум 5 процессов апатча, или чтобы nginx разрешал одному юзеру 1 запрос к сайту в секунду ... Всё...

Сама связка работает великолетно,страницы начали грузиться быстрее,нагрузка уменьшилась, но интересует защита от такой самой простой DOS атаки
http://twitter.com/schumachermkua - Мой Твиттер

Оффлайн dubrsl

  • alt linux team
  • ***
  • Сообщений: 238
Re: nginx + apache ограничения
« Ответ #10 : 05.01.2011 17:01:25 »
Я спрашиваю какой конкретно конфигурацией (переменой) nginx или apache ограничивается количество процессов на 1 юзера, хочу чтобы один юзер мог вызывать максимум 5 процессов апатча, или чтобы nginx разрешал одному юзеру 1 запрос к сайту в секунду ... Всё...

Сама связка работает великолетно,страницы начали грузиться быстрее,нагрузка уменьшилась, но интересует защита от такой самой простой DOS атаки
Для начала определитесь как вы хотите идентифицировать этого одного юзера? По IP? По coke? Еще как-то?
WBR,
Slava

Оффлайн sevtager

  • Участник
  • *
  • Сообщений: 13
Re: nginx + apache ограничения
« Ответ #11 : 06.02.2011 15:26:40 »
Похожая проблема .
Помогите решить  Ограничить по кукисам