Оптимизации сервера пост
nginx / apache / mysql

Прошу в пост!

Tagged with →  

244 Responses to Оптимизации сервера пстоnginx / apache / mysqlПрошу в пост!

  1. SisYes:

    товарищи. У меня полная беда на сервере.
    Конфиг 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;

    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/*;
    }
    ––––––––––––––––––––––––––––––––––––––– — —
    [email protected]:/# uptime
    19:19:31 up 2 days, 1:03, 0 users, load average: 0.59, 0.34, 0.68 ––––––––––––––––––––––––––––––––––––––– — —
    [email protected]:/# vnstat –tr
    32684 packets sampled in 5 seconds
    Traffic average for eth0

    rx 2.73 Mbit/s 4174 packets/s
    tx 2.78 Mbit/s 2362 packets/s
    –––––––––––––––––––––––––––––––––––––––– ––––––––––––––––––––––––––– — —
    [email protected]:/# ps ax –o %cpu,vsz,wchan,command | grep «nginx|PID»
    0.0 13276 — nginx: master process /usr/sbin/nginx
    25.2 14596 — nginx: worker process
    0.0 13460 — nginx: cache manager process
    –––––––––––––––––––––––––––––––––––––––– –––––––––––––––––––––––––– — —
    У меня выделенный порт 100mbit (около 12 mb)
    В данный момент сайт какого–то хуя не работает (ддосят немного). 502 nginx
    Так вот вопрос, почему? Ведь канала еще дохуя, CPU тоже дохуя. Я уже не говорю о том что mysql падает настолько часто что пиздец. Весь вебсервер установлен как vservers

    Советы, пожалуйста!

  2. Xxxno:

    502 — это у тебя бэкенд падает, а не nginx.
    чочо с mapenfiles там у тебя?

  3. SisYes:

    мне подробнее, пожалуйста, где смотреть и че вводить)). Я в серверах неочень, знаю только чем когда-то научили)

  4. Lodblack:

    а что у тебя там вертится и зачем тебе апач?

  5. Igebad:

    если установлен apachetop попробуй что-нибудь вроде apachetop -f /var/log/nginx-access.log чтобы посмотреть, куда запросы идут.
    Скорее всего какой-то скрипт тупит

  6. SisYes:

    vbulletin форум, апач для пхп вроде. знаю про какой-то php-fpm, но боюсь наебнется все.

  7. SisYes:

    установил. обиделся(
    last hit: 00:00:00 atop runtime: 0 days, 00:00:10 16:34:22
    All: 0 reqs ( 0.0/sec) 0.0B ( 0.0B/sec) 0.0B/req
    2xx: 0 ( 0.0: 3xx: 0 ( 0.0: 4xx: 0 ( 0.0: 5xx: 0 ( 0.0:
    R ( 10s): 0 reqs ( 0.0/sec) 0.0B ( 0.0B/sec) 0.0B/req
    2xx: 0 ( 0.0: 3xx: 0 ( 0.0: 4xx: 0 ( 0.0: 5xx: 0 ( 0.0:

  8. KapCap:

    выкладывай подключающийся конфиг сайта,
    используй limit_req_zone && limit_req,
    увеличь worker_rlimit_nofile,
    увеличь количество worker-ов.

    и расскажи подробнее как именно тебя ддосят.

  9. SisYes:

    конфиг http://pastebin.com/NbuMWd20
    ддосят без понятия как. я выключал апач и nginx. ддос был все равно до 14 mbit/s
    Я пытаюсь банить айпишники в iptables, но это всего-лишь уменьшает загруженность канала до 2mbit.

    [email protected]:/# netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n
    1 124.122.55.172
    1 176.212.123.107
    1 189.156.115.189
    1 193.238.98.185
    1 77.88.28.246
    1 91.211.60.131
    1 95.58.226.79
    1 95.83.32.196
    1 Address
    1 servers)
    5 208.138.38.103
    6 178.91.224.28
    10 42.119.187.212
    15 212.253.113.92
    19 202.179.19.112
    68 127.0.0.1
    80 200.93.40.134
    155 93.109.10.3
    187 188.41.22.245
    188 77.64.43.220
    262 41.135.190.140
    308 124.121.70.101
    310 114.79.19.142
    313 117.196.106.60
    503 197.253.143.229
    1114 182.178.8.50

  10. Lodblack:

    пиздец! выкидывай нахуй апач, ставь php-fpm прямо на nginx и мускулем percona. Горя знать не будешь, такой конфиг у нас на среднем тазу держал под полляма трафа

  11. Xxxno:

    Как именно происходит DDOS? HTTP — запросами?
    И да, я бы логи отключил.

  12. Xxxno:

    пришел Ванечка и все объяснил!
    для этого время надо, а ему отбиться бы сейчас.

  13. SisYes:

    отключил apache/nginx. vnstat показывает что все равно забито 2mbit

  14. Lodblack:

    от чего отбиваться?! 14 мегабит это ваще может кто-то сраный парсер включил, ддос на 14 мбит это смешно.

  15. Xxxno:

    2mb ниочем же.
    я бы поковырял на предмет того, что это за 2 мегабита, и что в них льют.

  16. Xxxno:

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

  17. SisYes:

    я бы тоже, но не знаю как ( И понять бы как вообще сервер поднять, сраные 2 мбита не может отбить

  18. Lodblack:

    так это просто достаточно через куку отсекается. Принял куку — прошел дальше, не принял — нахуй с пляжа.

  19. SisYes:

    [email protected]:/# netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n
    1 Address
    1 servers)
    [email protected]:/# vnstat -l
    Monitoring eth0… (press CTRL-C to stop)

    rx: 1.32 Mbit/s 2638 p/s tx: 524 kbit/s 1243 p/s^C

    Как такое может быть? Подключенных айпи нет, а vnstat мне пишет 1.32mbit

  20. Xxxno:

    /var/log/messages; /var/log/syslog
    что-то подозрительно.

  21. Xxxno:

    в итоге я по куке и работал, ага.
    когда смог на него наконец попасть.

  22. Xxxno:

    tcpdump -i eth0 дальше критерии укажи, а то ебанешься от вывода.

  23. KapCap:

    так не совсем понятен тип атаки — синфлуд или обычная.
    в любом случае предлагаю:

    в конфиг nginx
    limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s; # ограничение 5 запросов в секунду с одного адреса

    в конфиг сайта, который досят во все локейшены проксирующие запросы на бекенд
    limit_req zone=one burst=5 nodelay;

  24. KapCap:

    покажи последние строк 30 /var/log/nginx/error.log

  25. SisYes:

    С виртуального сервера syslog, messages там пустой почти ну или не сегодняшние записи.
    А с главного сервера (или главной виртуалки) messages, syslog

  26. Naref:

    А ты думал, пакетики, которые в DROP уходят, они тебе в канал не пролезают, да?

  27. SisYes:

    бля, он 7 гигов весит :

  28. KapCap:

    tail -n 30 /var/log/nginx/error.log
    и потом cat /dev/null > /var/log/nginx/error.log

  29. KapCap:

    o! possible SYN flooding on port…

  30. SisYes:

    а вроде меньше т.к. я когда начал банить айпи я смог снизить нагрузку на канал с 14 до 2. Или это не я, а они просто ддос уменьшили?

  31. Naref:

    Это ты получаешь вместо всей tcp-сессии только поток ack-ов.

    Схожего результата можно добиться, разворачивая ддосеров nginx-ом в { return 204; }

    Не забыть при этом:

    net.ipv4.tcp_tw_recycle = 0
    net.ipv4.tcp_tw_reuse = 0

    Поставить в 1.

  32. KapCap:

    не, заворачивать ддосеров по ip нужно до nginx. a ip нужно брать из access лога анализируя его раз в 5 минут.

  33. SisYes:

    а я сегодня поставил sysctl net.ipv4.tcp_syncookies=1 до этого 0 было, но я нихуя не понял зачем т.к. не помогло ничем (
    Верхние штуки в один поставить тоже? Не сломается ничего?

  34. KapCap:

    немного странно, тут бы тебе видеть 504, а не 502.
    в общем сделай limit_req о котором я писал несколькими комментариями выше и подбирай параметры, например burst можно на время ддоса поставить = 0.

  35. Naref:

    Так делать не надо, если у тебя не виприон на входе.

    Про анализирование лога — я аж кофием поперхнулся.

  36. Naref:

    Не сломается.

    Синкуки спасают, когда у тебя более 20тыс коннектов в секунду.

  37. Naref:

    netstat -na | grep SYN_RECV | wc -l

    cat /etc/issue

    uname -a

  38. Naref:

    Ничего странного нет. Очевидно, что кончились fd-шки.

  39. KapCap:

    а я не знаю что такое виприон 🙂 расскажи коротко.

  40. LspMsk:

    пока дисковая справляется, логи отключать смысла нету. буферы на них и так стоят, так что пусть себе пишутся.

  41. SisYes:

    [email protected]:/# netstat -na | grep SYN_RECV | wc -l
    0
    [email protected]:/# cat /etc/issue
    Debian GNU/Linux 6.0 n l
    [email protected]:/# uname -a
    Linux xek.wuza.ru 2.6.33 Daedalus.ru i686 GNU/Linux

    Выше это в виртуалке.
    Делаю exit, там

    178-162-174-210:~# uname -a
    Linux 178-162-174-210.local 2.6.32-5-vserver-686-bigmem #1 SMP Wed Mar 9 00:46:31 UTC 2011 i686 GNU/Linux

  42. KapCap:

    netstat -ant | awk ‘{print $6}’ | sort | uniq -c

  43. Naref:

    Тогда смотри в dmesg внимательно. Практически стопроцентно кончились дескрипторы файлов.

  44. SisYes:

    178-162-174-210:~# netstat -ant | awk ‘{print $6}’ | sort | uniq -c
    1 established)
    4 ESTABLISHED
    1 Foreign
    5 LISTEN
    178-162-174-210:~#
    178-162-174-210:~# vserver xek enter
    [email protected]:/# netstat -ant | awk ‘{print $6}’ | sort | uniq -c
    1 established)
    1 Foreign
    3 LISTEN

  45. KapCap:

    ддос закончился.

  46. Naref:

    Железка для балансировки и разбора трафика L2-L7. В полной набивке — 40G, и умеет парсить до отдельного пакета wire-speed.

    Ценник за железку в полной набивке — 120-140 тыс. евро.

    Тупо блочить фаерволом пакетики — ты придешь к тому, что заблочишь пол интернета.
    Проще просто выключить сервер.

  47. SisYes:

    я ж там ничего не понимаю( dmesg

  48. KapCap:

    кстати, по этому поводу в nginx.conf на верхний уровень добавь
    worker_rlimit_nofile 10240;

  49. KapCap:

    а, знаю такую железку, пользовался один раз.
    а у она есть?

  50. SisYes:

    502 ошибка после 20 секунд ожидания http://forum.xeksec.com/

  51. Naref:

    Очевидно, нет. Поэтому не надо пытаться анализировать L3.

  52. KapCap:

    это не противоречит тому, что ddos закончился.
    теперь нужно посмотреть что за проблема с бекендами; я в твоём top-е нифига их не заметил, они вообще есть?

  53. SisYes:

    добавил, ребутнул, 502 все еще( Мне бы такую команду типа killddos и чтобы все ок сразу стало))

  54. SisYes:

    Бля.. Опять началось

    [email protected]:/# netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n
    1 118.38.72.137
    1 119.73.2.140
    1 124.109.59.45
    1 178.89.42.101
    1 182.177.68.163
    1 207.46.192.47
    1 66.249.66.66
    1 72.27.175.203
    1 77.93.1.169
    1 87.228.0.23
    1 Address
    1 servers)
    2 178.168.217.56
    2 85.202.230.142
    3 115.186.166.197
    3 182.177.60.186
    3 212.96.64.12
    3 77.126.242.223
    4 175.110.77.94
    4 220.224.226.217
    5 178.91.224.28
    6 41.234.249.69
    7 201.127.190.42
    7 41.209.65.80
    9 202.179.19.112
    10 122.163.208.101
    15 189.216.95.100
    22 187.171.49.7
    35 127.0.0.1
    39 81.248.87.22
    41 116.203.254.113
    65 2.51.221.242
    69 189.231.230.75
    81 117.193.229.198
    81 88.252.39.20
    82 187.24.133.234
    98 176.102.233.24
    130 88.241.171.167
    133 85.110.135.213
    141 86.99.219.200
    148 197.226.139.192
    152 37.8.11.247
    172 195.24.202.42
    196 84.228.78.136
    223 41.104.51.234
    249 37.105.105.44
    297 110.77.165.182
    436 124.122.55.172
    546 37.17.198.6
    577 2.77.212.68
    811 41.104.193.171
    3358 115.186.166.243

  55. SisYes:

    [email protected]:/# netstat -ant | awk ‘{print $6}’ | sort | uniq -c

    1011 CLOSING
    1 established)
    701 ESTABLISHED
    940 FIN_WAIT1
    154 FIN_WAIT2
    1 Foreign
    4235 LAST_ACK
    5 LISTEN
    286 SYN_RECV
    9 SYN_SENT
    156 TIME_WAIT

  56. KapCap:

    теперь мы знаем, что это не синфлуд.

  57. Naref:

    297 110.77.165.182
    436 124.122.55.172
    546 37.17.198.6
    577 2.77.212.68
    811 41.104.193.171
    3358 115.186.166.243

    При таких раскладах — прямая дорога к limit_req. Выше тебе подробно написали.

  58. KapCap:

    наглых закрыть файрволом. со мной не согласен по этому напишу как можно сделать то же самое в nginx
    в основном конфиге
    geo $suka {
    default 0;
    115.186.166.243 1;
    }
    в server, который ддосят
    if ($suka) {
    return 204;
    }

    далее.
    нужно узнать к каким страницам обращаются чаще всего. главную страницу форума и эти страницы выкладываешь в статику (curl http://localhost или как-то ещё) и переписываешь конфиг так, чтобы nginx отдавал их с диска (root или alias).

  59. KapCap:

    про geo читай тут http://nginx.org/ru/docs/http/ngx_http_g
    , надеюсь мы больше не будем зря переводить кофе :-))

  60. SisYes:

    запилил так

    user www-data;
    worker_processes 2;
    worker_rlimit_nofile 20240;

    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;

    #access_log /var/log/nginx/access.log;

    sendfile on;
    #tcp_nopush on;

    #keepalive_timeout 0;
    keepalive_timeout 65;
    tcp_nodelay on;

    gzip on;
    gzip_proxied any;
    gzip_min_length 1100;
    gzip_http_version 1.0;
    gzip_buffers 4 8k;
    gzip_comp_level 9;
    gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

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

    limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;
    limit_req zone=one burst=5 nodelay;
    }

  61. Naref:

    Это лучше. Правильный вариант — не вбивать жОстко в конфиг, но как quick&dirty — пойдет.

  62. SisYes:

    айпишников слишком мого чтобы вручную их записывтаь в конфиг. Я скриптом уже около 200 айпи забанил в iptables у которых было больше 100 соединений

  63. SisYes:

    Какой все-таки бред. Я вообще не понимаю как можно не отдавать даже 403 ошибку (переименовал root папку в nginx), а отдавать 502 при 500 коннектах. Вот убейте никак не пойму. Либо меня наебывают что сервер хороший, либо с настройками все хуже чем я думаю.

  64. KapCap:

    gzip_min_length 1500
    меньше 1460 (размер пакета в ядре) особого смысла нет

    keepalive_timeout сделай 30
    сейчас тебе бороться за клиентов смысла нет

  65. KapCap:

    ну, организация конфигов — дело вкуса. можно сделать инклюдник, писать из твоего скрипта в него и killall -HUP nginx (или чё там service nginx reload) после каждой переписи населения.

    и вообще это был просто пример, лично мне кажется более православным работать с fw.

  66. KapCap:

    давай снова посмотрим в error-лог

  67. LezSpb:

    1. используй ipset
    2. если это не просто syn-flood, используй connlimit
    3. ограничь request_rate для атакуемых location средствами nginx
    4. дальше парсшь access-log и всех кто превысил request-rate отправляешь в ipset
    5. также я бы ограничил ответы на время атаки -I OUTPUT -p icmp -j DROP -I OUTPUT -p tcp —tcp-flags RST RST -j DROP

  68. SisYes:

    Чуваки, я же менял параметры в sysctl
    Сейчас смотрю /etc/sysctl.conf, что на главном что в виртуалке там все закоментировано. Это получается я менял, но работать оно не работает?

  69. SisYes:

    оказывается и вчера ддосили

  70. SisYes:

    DDOS идет с протокола request: «GET / HTTP/1.0»
    может можно их как-то все отсекать?
    Вроде давно 1.1

  71. SisYes:

    А я не буду спать пока мне кто-нибудь не поможет!

  72. Naref:

    Про размер пакета заход отличный.

  73. Naref:

    Сделай / статикой.

  74. SisYes:

    Я сделал главную страницу статикой. Все ок заходит, но как только я подключаю форум, пизда все рушится 502.

  75. Igebad:

    расскажите потом, чем закончилось-то

  76. KapCap:

    давай, чтоб ты поспал, соберём тебе nginx с geoIp и отрубим всех не из зоны RU.
    вот только у меня смутные сомнения на счёт работы твоих бекендов. всё таки. у тебя дофига памяти, не такой уж высокий use по процу и тем не менее bad gateway.

  77. KapCap:

    и чего ждём?
    «worker_connections are not enough». увеличь в 10 раз.

  78. LezSpb:

    не забудь выключить keepalive на бэкэнде.

  79. KapCap:

    пилят, я писал об этом тут.

  80. KapCap:

    и ещё. в messages я видет, что тебя ддосят и по 443 порту.
    я бы советовал поставить более свежий nginx, с момента 0.8 были правки связанные с сертификатами и вообще организовать временный редирект на http-версию.

  81. WebDev:

    пиздец. если руки кривые то юзали бы тогда уж internet information services — там и то таких проблем нет как в толстожопом корявом апаче

  82. SisYes:

    Stephan-V: а чего ж у всех должны быть заточены под сисадмина?

  83. 01pSpb:

    Для начала — удали папку C:denwer

  84. KapCap:

    конфиг nginx с 2-мя worker-ами нам какбэ непрозрачно намекает, что это не форточки.

  85. SisYes:

    не, ну на винде я сам собирал. Даже nginx стоит, им я правда не пользуюсь.

  86. WebDev:

    ни в какие ворота не лезет. судя по отсутствию изкоробочной ротации логов прозреваю nginx собранный из исходников и необновляемый. может тебе нужно нанять администратора?

  87. HneZZ:

    icq 11279766
    Написал , 21.02.2012 в 23.37 | ответить ?
    Он умеет

  88. 01pSpb:

    что, правда?

  89. LezSpb:

    Бляя, да у тебя форум малварщиков. Туда и дорога)

  90. SisYes:

    уже помогает 🙂

  91. 01pSpb:

    разбери и сложи игрушки в коробочки, ты еще мал для них

  92. LezSpb:

    на винде nginx работает через select, как следствие — умеет держать не более 1024 коннектов.

  93. SisYes:

    а вот и нет, безопасность веб-интерфейсов, то бишь защита от них 🙂

  94. KapCap:

    зачем переспрашиваешь?

  95. SisYes:

    зачем ты такой злой зашел в такой уютный пост?

  96. LezSpb:

    ну мне то не надо лапшу вешать 😉
    meta name=»keywords» content=»icq,аська,brute, брут, proxy, прокси, раздача, icq soft, jabber, купить, шестизнак, семизнак, кодинг, написание программ, вконтакте, vkontakte, odnoklassniki, программирование, расшифровка хешей» /
    meta name=»description» content=»icq,аська,brute, брут, proxy, прокси, раздача, icq soft, jabber, купить, шестизнак, семизнак, кодинг, написание программ, вконтакте, vkontakte, odnoklassniki, программирование, расшифровка хешей»

  97. SisYes:

    он мне нужен был для каких-то там тестов. для них мне нужны были перл правила, а на винде то он их как раз и не поддерживает)

  98. HneZZ:

    и что? набор кейвордов подходящий для чего угодно

  99. SisYes:

    на сайте старая инфа, очень)
    сейчас вот так:
    meta name=»keywords» content=»ssl, персональные данные, утечка данных, syn-flood, безопасность, freebsd, уязвимость, информационная безопасность, google hack, поисковая система, угон почты, mysql, ddos, защита, cookies, xss, oisd, sql injection, хэш, пароль, безопасность паролей, lulzsec, socialware, социальная инженерия, skype, javascript, godaddy, хостинг, iptables, linux, ipset, anonymous, PIN, avg, windows phone, htc, iphone 5, почтовый траффик, веб-дизайн, кино, android, trojan, malware, security update, VoIP, аудит, youtube, подписка» /
    meta name=»description» content=»XekSecurity — информационная безопасность, новости IT, программирование» /

  100. 01pSpb:

    правда, меня он веселит прям, давно тут цирка не было

  101. 01pSpb:

    ты меня прости, но человек, не умеющий tail и тот, чей сайт падает под 14МБит ддосом с трудом может называться веб-программистом. Поэтому, пост расцениваю как непрофильный

  102. SisYes:

    7 лет насмарку 🙁

  103. HneZZ:

    а с каких пор веб программист занимается вопросами ДДОС?
    14 мбит гет запросов уложит практически любой сайт (если без защиты, кеширования и etc)

  104. SisYes:

    помогаешь ддосить?)

  105. WebDev:

    на каком порту апач висит?

  106. SisYes:

    Stephan-V: 81 вроде, он закрыт извне

  107. LezSpb:

    да не нужно оправдываться. назвался груздем — сумей отбиться…

  108. HneZZ:

    отдачей статики? :)))

  109. 01pSpb:

    какая тут блядь защита? давай тебе вопрос на засыпку: 14 мбит канал на форуме с кучей статики и тяжеленных страниц вместит сколько активных юзеров?

  110. HneZZ:

    кста, я когда то наталкивался на какие то мистические глюки, когда это злощастный 81 порт вылезает в запрос. При редиректах каких то, что ли. Ща всегда вешаю на 127.0.0.1 80

  111. SisYes:

    Если вконтактие в шапку логотип повесить с сервера блог, хабра, те не сложатся?

  112. HneZZ:

    при чем тут это? я ж тебе говорю — граммотный ДДОС на 14 мбит уложит практически любой форум, если у тебя не 100 кратный запас железа и нет кеша

  113. 01pSpb:

    какой, к ебаным хуям «грамотный ддос» по хттп?

  114. Exewhite:

    1) причем тут нгиникс если падает бэкэнд? Включай mod-status апача и смотри какие запросы к тебе идут, есть ли свободные воркеры и чем они занимаются. Конфигурить надо апач, а не нгинкс
    2) Как найдешь какие страницы дуплят ищи причину. Или исправляй ее (если она есть) или прикручивай кеширование сгенеренных страниц сразу нгиниксом. Учитывая что сервер простаивает — поможет
    3) Собирай список ИП адресов ботов, блокируй их фаерволом

  115. SisYes:

    когда у меня был вплеер там постоянно были забиты 3 сервера по 12 мбит. Онлайн человек 500-1к постоянно было

  116. HneZZ:

    дохрена. самый посещаемый форум нашего города укладывается нах под нагрузкой на core quadro 4 гига оперативы но при этом до траф 10 мбит недоходит никогда.

  117. HneZZ:

    только по каналу.

  118. HneZZ:

    ой, мама.. а куда ты хочешь граммотный ддос? тупо, на забивание канала?

  119. LezSpb:

    директива для этого есть у nginx
    proxy_redirect

  120. LezSpb:

    сдуру можно и хуй сломать.

  121. HneZZ:

    да я знаю, но там то ли движек готовый был, то ли то то еще, но в общем как то всплывало. я не разбирался, на локалхост повесил и всегда так делал, пока апач юзал

  122. 01pSpb:

    тьфу ты, удали

  123. 01pSpb:

    и ты денвер уложи, компьютерщик, блять

  124. HneZZ:

    можно
    Этот проект не я веду, но по знакомству посмотрел, что у них там
    база подтюнена неплохо, индексы все прописаны, лишних вроде нет
    статика отдается фронтендом, на бекенде — апач, но они по другому не умеют.
    Кешировать форум — малореально, это долго у Сысоева на форуме обсасывалось 🙁
    Варианты?

  125. Htoer:

    я парсерами даже тупыми и куки собираю, и псевдосессии держу, да в пределах оных и прокс один и тот же, да юзерагент, и ещё хидеров рандомно для каждой сессии хранится. Даже по иерархии хожу в пределах одной сессии, мол, это блогер так шарится.

    Короче: кукисы не отсекут.

  126. LezSpb:

    nginx всё равно что за движок — он с протоколом работает 😉

  127. Lodblack:

    парсер и ддос это разные вещи.
    а если куку ставить js-ом, то вопрос решен

  128. Htoer:

    я про мультитредовый большой парсинг. И твой этот js ни хуя не спасёт, уверяю. Капчи вводи, разве что, на выдачу куки для сессии.

  129. Naref:

    Госспади, ну хоть один душевно здоровый человек!

    Дай пять!

  130. Lodblack:

    бля, о чем идет речь. Если ты вменяемо парсер написал, он не положит сервак, а корректно стянет все, что тебе присралось спарсить, без особых эффектов для работоспособности сайта. И это правильно.
    Закругляюсь с офтопом

  131. Htoer:

    естественно, если мне нужна информация — то я крайне заинтересован и в антепалеве, и в том, что бы у посонов, с кого тягаю, вопросов не возникало.

    Закрыли оффтоп, ок.

  132. Lodblack:

    :-* так же делаем

  133. SisYes:

    помог мне в этом ебучем деле! Сейчас канал забит на 12 мбит, нам всё равно.
    Вообще крутой чувак, я бы женился, но NOT GAY )
    Спасибо тебе еще раз!

  134. Naref:

    Посоны, было клево.
    Я такого давно не видел, со времен, когда на серчах пасся.

  135. 01pSpb:

    чего именно? такого пиздеца в архитектуре или такого хитровыебанного и мощного ддоса?

  136. Htoer:

    Потс в избранное, всем помогавшим — в карму.

    Ребзя, вы мне скоро очень пригодитесь.

  137. Naref:

    Архитектура там — стандартная. А вот конфиги ввергли меня в задумчивость — местами было очень непонятно, что хотел сказать автор.

  138. HneZZ:

    Сударь, вы мне льстите 🙂

  139. Ylfer:

    мокрых писек скачать нет, например

  140. Ylfer:

    подробности, пожалуйста

  141. HneZZ:

    Обыдно, да 🙂

  142. Naref:

    Копипастить надо — а это к .

    Меня ввела в ступор строка

    resolver 8.8.8.8;

    засунутая в _каждый_ вхост, при том, что проксирование включено только на 127.0.0.1.

  143. OxZZ:

    если деньги есть, пиши, настрою :

  144. Xxxno:

    Написал всё пло |

  145. Igebad:

    freebsd занимаешься?

  146. OxZZ:

    в принципе да, но линуксы лучше. всех кого мог перевел на Linux.

  147. OxZZ:

    я бываю иногда весьма занудным и за это надо платить

  148. SisYes:

    буду знать 😀

  149. Htoer:

    бро, спасибо, но меня бы в маны потыкать.

    А так, да, упоротый фрюховод.

  150. HneZZ:

    а то по bsd интересует?

  151. Igebad:

    а можешь вкратце рассказать, чем?
    интересует использование в качестве ос веб-сервера — стандартный набор по: nginx, apache(или php-fpm, например), mysql, eaccelerator(или apc), sphinx. В общем, ничего уникального.
    Т.е. лучше в производительности или дело только в удобстве для админа(или юзеров)?

  152. Igebad:

    конкретно, наверное, ничего. Просто есть некоторое количество серверов под freebsd, которые админит удаленно человек. Всегда хочется иметь про запас хорошего специалиста, который сможет выполнить какую-либо работу грамотно и быстро(и, конечно, за деньги)

  153. Naref:

    Ты спрашивай, если надо будет.

  154. Naref:

    лет зи холивар бегинз!

  155. Igebad:

    а можно какой-нибудь контакт в личку, буду хранить на случай чрезвычайных ситуаций

  156. SisYes:

    ты так и не получил загранник?)

  157. Naref:

    Нет, отчего ненависть моя к окружающему миру умножилась многократно 🙂

  158. Naref:

    Нопейсал.

  159. OxZZ:

    Как админ — в плане поддержки, как юзер — в плане стабильности.

    Причины следующие: так софтпишется в основном под линуксом, он бывает плохо совместим с BSD.
    Понимаю что это звучит странно, но вот например ZendOptimizator периодически падает под BSD и не падает под линуксом. BSD имхо по прежнему OS написанная студентами для студентов (в хорошем смысле этого слова). И так будет пока не появится «RedHat» делающий BSD. Пока не будет нормальной дистрибьюции.

    Для некоторых задач BSD лучше Linux-a. Тот же netgraph.
    Веб бы рекомендовал держать на Linux-e в openvz или vserver (аналог jail)

  160. Ylfer:

    сейчас на портале госуслуг весьма пиздато принимаются заявления в фмс

  161. Naref:

    Эх.

    У меня и так пиздато приняли. Но слишком поздно — за 2 недели сделать не успели, хотя и пытались.

    У меня, увы, своеобразный работодатель, который очень долго меня динамил с оформлением бумажек для ФМС.

  162. Htoer:

    а меня как раз нативные джейлы прут. :-

  163. Naref:

    Но зачем?

  164. OxZZ:

    джейлы пиздатые

  165. Ylfer:

    для них пока нельзя задать квоты на ресурсы, разве это пиздато?

  166. Ylfer:

    так они и не обязаны укладываться в две недели

  167. OxZZ:

    за неимением чего либо другого — да, пиздатые

  168. Igebad:

    openvz это для виртуализации? ну, у нас серваки обычно по 1-3 штуки под один проект.

  169. OxZZ:

    для миграции :

  170. Igebad:

    а вот это не понял, не мог бы пояснить?

  171. OxZZ:

    система развернутая в виртуальном контейнере поддается очень простой миграции. достаточно просто поднять софт обеспечивающий виртуализацию на новом сервере и просто скопировать контейнер.

  172. Xxxno:

    как это связано с хайлоадом?

  173. OxZZ:

    а почему нет?

  174. Aliwhite:

    хех, добавил пост в избранное)

  175. Kkebad:

    кстати. раз уж такая тема.

    читал я умных людей в интернете, якобы статику (CSS/JS/картинки) лучше на другие домены скидывать, чтоб разгрузить основной.

    если обычные поддомены использовать, будет ли толк? я читал что-то про распространение кук на поддомены, мол, вся польза пропадет

  176. SisYes:

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

  177. Kkebad:

    я про это во втором абзаце написал. меня интересует, будет ли толк от размещения на поддоменах, или обязательно использовать другой.

  178. Naref:

    Статике пофиг на куки. Клиентскому браузеру, конечно, не пофиг — но оверхэд там копеечный.

    Игрища могут быть только вокруг того, как браузер открывает пачку соединений на 1 домен и 1 ip, на 1 домен и разные ip, на разные домены и разные ip.

    Зависит от кучи факторов. ХЗ, как лучше.

  179. Xxxno:

    смотря что у тебя медленнее: сеть, диски или приложение.
    И от чего в таком случае ты отказываешься.
    Если переносишь на поддомен в том же приложении и на том же сервере, то профит только в том, что написал выше.
    Если на удаленную хуйню — надо смотреть, будет ли быстрее или нет.

  180. Kkebad:

    вот тут например инструкция, как сделать кукилесс-домен, только у них все же регистрировать отдельный домен предлагается

  181. Kkebad:

    диск — медленный, но потому что сервак делим с другими юзерами. то есть такая оптимизация ничего не даст. сетка — канал в город (где основные юзеры) толстый и очень быстрый. приложение — битрикс.

    я сознательно хочу поэкономить на спичках, just for fun и просто левелапнуться.

  182. Kkebad:

    и еще вопрос, раз уж тут тусят грамотные админы.

    есть сервак, на котором есть довольно кривенький PHP-скрипт, считающий кое-какую финансовую величину. периодически юзеры умудряются подбирать параметры, с которыми скрипт вешает апач нахрен. а иногда не вешает. я написал простенький логгер, который мне пишет в базу эти параметры и флаг успешного завершения расчета, + по access.log вычисляю, кто куда ходил во время смерти пациента.

    но хотелось бы еще иметь какой-нибудь мониторинг, который бы показывал развитие событий от ребута до ребута.

    подскажите инструмент, пожалуйста. читал про заббикс и мюнин, по-моему это совсем не то

  183. Xxxno:

    летчик.жпг
    что за развитие событий от ребута от ребута имеются в виду в данном случае?

  184. Kkebad:

    если бы я знал. постепенно сжираются свободные ресурсы, и просто в какой-то критический момент апач не выдерживает. причем, там не идет речь о высокой нагрузке — это может быть один юзер. или два, с разницей в 10 секунд, пока идет расчет. скрипт перепишется потом, конечно, но следить за сервером как-то хочется, один top не очень дает представление о динамике.

    админ сервера ленится мне помогать, поэтому я как-то сам пытаюсь разобраться

  185. OxZZ:

    переформулируй проблему, то что ты написал не дает понять что за проблема у тебя

  186. KapCap:

    munin поставь

  187. KapCap:

    «хочу поэкономить на спичках» — сведи весь css в один файл и весь js в один файл, зазипь и отдавай nginx вот с этой штукой http://nginx.org/ru/docs/http/ngx_http_g… — вот тебе и будет спичечная экономия.

  188. Kkebad:

    это уже пройденный этап, меня интересует конкретно эта задача.

  189. Naref:

    Вешающийся скрипт. Пишет в базу флаг успешного завершения.

    Это печально.

    Раз у тебя полтора инвалида — дебаг пиши в файл. Это дешевле скрипту, чем база.

  190. KapCap:

    тогда мне нечего добавить к ветке обсуждения 🙂
    ну и двигай в сторону уменьшения дисковых операций: open_file_cache в nginx, засунь css и js в память и отдавай из неё, включи iotop и посмотри кто больше всех использует диск.

  191. HneZZ:

    по моему ИП роли не играет

  192. HneZZ:

    мунин и какти — строит графики чего угодно, что можно снять по снмп
    Нагиос — отслеживает эвенты, типа «мало памяти», «много процессов», «сдох апач»
    Забикс имхо наиболее могуч, он умеет и то и другое + кастмные скрипты выполняемые на сервере.
    Но это уж дело привычки и удобства

  193. Naref:

    Смотреть надо. Браузер вполне может оптимизировать запросы в keepalive по ip.

  194. Naref:

    Заббикс, кстати, уебищен более, чем наполовину — но внятной альтернативы нет. nagios — жалкое подобие левой руки, а в cacti — нету триггеров.

  195. HneZZ:

    ну, какти они и ре нужны, она для другого… в общем нет в мире бесплатного совершенства… 🙂

  196. Naref:

    Я, кстати, ровно сегодня домучал-таки оповещалку от жаббикса, чтоб в телефон писала. Даром.

  197. KapCap:

    давай подробности

  198. HneZZ:

    и мне. через что? оч актуально. Хотя ща я посматриваю на zabbix виджет для андроида

  199. LezSpb:

    пользуясь случаем — торгану своей поделкой. я наконец-то переписал свой модуль nginx для отсеивания ботов на основе наличия у их нужной нам куки, исходники на github: goo.gl/HgP1v.
    кука уникальная для каждого бота, генерится по заданным параметрам.

    Умеет:
    Ставить куки стандартным способом через HTTP заголовок Set-Cookie (для защиты от совсем тупого флуда)
    После постановки куки редиректить пользователя используя код ответа 301 и заголовок Location
    После постановки куки редиректить пользователя используя код ответа 200 и HTML тег meta refresh
    Считать количество попыток поставить куку и отправлять пользователя по заданному URL после превышения заданного количества неудачных попыток (это чтобы реальные пользователи без кук не обломались, прочитали доку и включили куки)
    Использовать custom шаблоны для ответа фильтра, в которых можно выставить куки через JavaScript
    Для предотвращения автоматического парсинга ответов нацеленных на исполнение JavaScript, шифровать значение переменных в шаблоне используя симметричный алгоритм с дальнейшей расшифровкой используя JavaScript на стороне клиента (да, звучит так себе, зато работает ;))
    Whitelist’ить заданые сети(например сети в которых живут поисковые роботы)
    Кое-какие фишки полезные во время DoS атаки

    Не умеет:
    Модуль лишь возвращает клиенту заданные ответы, принимать решения о блокировке клиента/блокировать используя файрвол вы должны самостоятельно
    Модуль из коробки не умеет капчи и flash — если нужно, вы можете прикрутить их самостоятельно, нужно лишь проявить фантазию при конфигурации
    Данный модуль — это инструмент, который может помочь, если его правильно использовать
    Модуль — лишь маленький компонент в комплексе защитных мер.

    если хоть кому-то интересно, попозже запилю статью на хабр с юзкейсами и описанием того, как это всё работает.

  200. Exewhite:

    мунин строит графики основываясь на плагинах на перле, которые тупо возращает цифры, снмп там не для снятия данных.
    он же может отслеживать события

  201. Htoer:

    интересно!

  202. Naref:

    На машине с жаббикс-сервером живет в скрине консольный mcabber, который умеет читать коммандульки из fifo, прицепленный к gtalk-аккаунту от Google Apps. В телефоне живет xabber.
    Жаббикс через внешний скрипт пишет в фифо.

    Штатная оповещалка жаббикса не может в jabber без корректных SRV-записей.

  203. Naref:

    Виджеты там какие-то норкоманские — то не умеют https, то — обязательно показывают рекламу, то — умеют только один жаббикс-сервер с одним аккаунтом. Более-менее нормальный — mobbix lite.

  204. HneZZ:

    Раз пошла речь про nginx и модули — научите собирать nginx из портов с дополнительными модулями, плииз

  205. KapCap:

    т.е. слово телепон тут для красоты и в отсуствие у тебя интернета уведомление ты не получишь, верно?

  206. Naref:

    Если у меня есть сотовая сеть — есть и интернет. Если нету сотовой сети — то зачем мне любое оповещение в телефон?

    смс-ки слать, кстати, сильно проще — но неудобно со стороны телефона.

  207. Naref:

    make fetch && make extract && make patch && make config
    cd work/nginx-x.xx.xx/ &&./configure —bla-bla
    cd../../
    make install

    Только configure-string нужно собрать из дефолтно-портового.

  208. KapCap:

    > Если нету сотовой сети — то зачем мне любое оповещение в телефон?
    позвонить собутыльнику, напрячь его.

    > смс–ки слать, кстати, сильно проще — но неудобно со стороны телефона.
    а если к серверу сбора статистики прикрепить какую-то дешёвую нокию и слать через неё?

  209. Naref:

    Как я получу оповещение, в отсутствии gsm-сети? 🙂

    Собственно, у меня ровно так и было — пока не затрахало именно со стороны моего телефона. смски фиг отключишь 🙂

    У науки троллей есть отличное решение — Siemens MC35I. gsm-терминал с rs-232.
    Есть и похожие с usb, но их не щупал.

  210. HneZZ:

    а патч то откуда брать?

  211. Naref:

    А патч качать ручками, и ручками вписывать в configure-string.

  212. Yoter:

    а в чем отличие siemens от продающихся сейчас huawei gsm-модемов?

    извините, совсем не в теме

  213. Naref:

    Наверное, ничем. Просто сименс гарантированно работает (его, кстати, пихали одно время массово в терминалы оплаты), а железка для китайцев — она может и не.

  214. HneZZ:

    у меня есть модуль
    файл nginx_module.c
    что мне с ним делать?

  215. KapCap:

    —add-module=, нэ?

  216. Naref:

    У тебя есть ngx_module.tgz.
    Распаковываешь, например, в /tmp/ngx_module/

    И в configure дописываешь —add-module=/tmp/ngx_module

    Единственное, что — может быть, оно захочет относительный путь.

  217. LezSpb:

    если с ним нет в комплекте файла configure, создаешь его по образу и подобию… 🙂

  218. HneZZ:

    ага, понял, спс

  219. 01pSpb:

    шел 21й век…

  220. KapCap:

    ну шёл он, чё не ясно-то? :

  221. HneZZ:

    ммм… и не поспоришь…

  222. 01pSpb:

    а вы все софт руками собираете на какой-то бородатой поеботе, вместо нормальной ОСи

  223. KapCap:

    бро, подъезжай за призом за самые осмысленные, содержательные и полезные комментарии в этом топике.

  224. 01pSpb:

    какой «топик» лол такие и комменты, не?

  225. HneZZ:

    ок. не вопрос.
    дай мне в своей нормальной ОС nginx c модулем HttpSecureDownload.
    Когда найдешь, тогда и поговорим

  226. LezSpb:

    а бля, вы всё про холиварите…

  227. LezSpb:

    ты не поверишь

    cd /usr/ports/www/nginx && make -DHTTP_SECURE_LINK_MODULE install clean

  228. HneZZ:

    хаха.. HttpSecureDownload и HTTP_SECURE_LINK_MODULE — это разные модули. но суть не в этом. я предложил вон тому гению дать мне nginx с кастомным модулем без сборки

Добавить комментарий