Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Какую архитектуру выбрать для веб-сервера?  (Прочитано 1916 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн cia

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Здравствуйте.
Уважаемые, специалисты-профессионалы, помогите, пожалуйста, определиться какая архитектура веб-сервера лучше подходит конкретно для моего случая.
Есть VDS от OVH (KS-2): 4Гб ОЗУ, 1.8Гц 2 ядра, 2 потока, 1Тб диск.
Я буду единственным пользователем сервера. На нём будут крутиться пять сайтов (php+mysql), общее число хостов - около 40 тысяч в день. Сайты очень хорошо оптимизированы, "летают". Тоесть нагрузка на сервер будет очень скромной.
Но сайты будут постоянно ддосить. Один из сайтов будет защищён прокси-защитой, другие до топа поисковиков ещё ползут - попробую без защиты оставить, хотя их тоже пытаются атаковать время от времени.
В общем что лучше подходит: nginx+apache+mod_php, nginx+php_fpm, lighttpd+fcgi php?
.htaccess весьма простой - php_fpm в этом отношении не будет проблемой. Особых модулей apache не требуется - стандартные php-сайты без технических изяществ.
Опыт работы с apache и nginx есть, с lighttpd - никакого.

Оффлайн .ubuntufan

  • Активист
  • *
  • Сообщений: 638
    • Просмотр профиля
Я бы на вашем месте сделал выбор в пользу nginx+php_fpm.
Можете почитать сравнения в интернете.

Оффлайн cia

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
.ubuntufan,
спасибо за совет. Поясните, пожалуйста, почему этот вариант?
Сравнения я, конечно, читал - они весьма противоречивы.
Сам тоже склоняюсь к такому варианту, но всё же решил сначала спросить совета. По-моему php_fpm против апача более устойчив к ддосу, надеюсь поднять стоимость атаки ориентировочно до 10-15 тыс. руб за сутки :D
А можете что-то сказать про lighttpd? Я с ним дела не имел. У меня сложилось впечатление, что он очень прост в конфигурировании, но каких-то серьёзных преимуществ против nginx не имеет. Это я про php, со статикой всё в общем-то понятно.

Оффлайн .ubuntufan

  • Активист
  • *
  • Сообщений: 638
    • Просмотр профиля
От DDOS вас ни один веб сервер не спасет.
Апач просто в данном случае будет создавать ненужный оверхед, поэтому он из схемы исключается.
Про lighttpd ничего сказать не могу, серьезно с ним не работал, но популярность у него на порядок меньше чем у nginx и наблюдались проблемы с утечками памяти.

Оффлайн cia

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
От DDOS вас ни один веб сервер не спасет.
Понимаю что не спасёт - игры с iptables - пройденный этап. Я говорю о увеличении затрат на организацию атаки. Цены начинаются от 2000руб - за эти деньги вполне возможно "выбить" никак не защищённый сайт на виртуальном хостинге. Хорошо настроенный веб-сервер может поднять необходимые затраты по моим прикидкам до 10-15 тыс. Это уже не плохо.
Цены специально узнавал, даже заказывал пробную атаку своего собственного сервера - были подозрения на счёт защиты провайдера.

Оффлайн .ubuntufan

  • Активист
  • *
  • Сообщений: 638
    • Просмотр профиля
О зависимости производительности веб-сервера и времени обработки запроса можно говорить только когда веб-сервер является узким местом, но в 99% случаях это не так. Как правило узкое место, создающее гораздо большую нагрузку - непосредственно бэкэнды, к которым проксируются запросы. И какой сервер перед ними не ставь - таковыми они и останутся.
Та характеристика о которой вы рассуждаете, RPS, ей обычно измеряют полезную нагрузку, она имеет к DDOS весьма косвенное отношения - вам могут спокойно забить канал даже при идеально настроенном веб-сервере, обслуживающим 1kk+ rps.


Оффлайн cia

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Ну так о бакэнде и речь.

Пользователь решил продолжить мысль 14 Марта 2015, 12:43:41:
Тему в общем-то можно закрывать. Посоветовавшись сделал выбор в пользу php_fpm со связкой через unix-сокет.
« Последнее редактирование: 14 Марта 2015, 12:43:41 от cia »

Оффлайн Sollomon

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Кто пробовал в бою использовать под большой нагрузкой tcp и сокеты, что лучше себя зарекомендовало?

Оффлайн .ubuntufan

  • Активист
  • *
  • Сообщений: 638
    • Просмотр профиля
Sollomon, в смысле?

Оффлайн Sollomon

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
В смысле связку nginx и php5-fpm по сокетам или же по тсп?

Оффлайн .ubuntufan

  • Активист
  • *
  • Сообщений: 638
    • Просмотр профиля
Разумеется, unix-socket быстрее.
Использовать TCP есть смысл только если веб сервер и бэкенд на разных машинах находятся.
« Последнее редактирование: 23 Марта 2015, 14:17:13 от .ubuntufan »

Оффлайн Sollomon

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Ясно, спасибо!!! Ибо только начал на него переезжать, нужно еще подводные камни изучить. )))

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Разумеется, unix-socket быстрее.
Использовать TCP есть смысл только если веб сервер и бэкенд на разных машинах находятся.
Чем меряли? Интересно посмотреть на цифры.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн .ubuntufan

  • Активист
  • *
  • Сообщений: 638
    • Просмотр профиля
Re: Какую архитектуру выбрать для веб-сервера?
« Ответ #13 : 01 Апреля 2015, 00:33:41 »
Это очевидно, в первом случае сетевая подсистема не будет задействована. Данные не форматируются как IP пакеты, не рассчитывается контрольная сумма, не генерятся доп. флаги, не происходит three-way handshake и т.д. Но создать такие замеры где бы эта разница стала явно заметна довольно проблематично, по понятным причинам - разница во времени работы этих способов вряд ли превышает несколько милисекунд.



Linux 3.2.0-23-generic x86-64 / Nginx 1.1.19 / Uwsgi 2.0.10

1 min, concurrency 1, 80kb body

Unix-socket:

Transactions:         1775 hits
Availability:       100.00 %
Elapsed time:        60.01 secs
Data transferred:         0.80 MB
Response time:         0.00 secs
Transaction rate:        29.58 trans/sec
Throughput:         0.01 MB/sec
Concurrency:         0.09
Successful transactions:        1775
Failed transactions:            0
Longest transaction:         0.02
Shortest transaction:         0.00

TCP:

Transactions:         1730 hits
Availability:       100.00 %
Elapsed time:        59.36 secs
Data transferred:         0.78 MB
Response time:         0.00 secs
Transaction rate:        29.14 trans/sec
Throughput:         0.01 MB/sec
Concurrency:         0.11
Successful transactions:        1730
Failed transactions:            0
Longest transaction:         0.02
Shortest transaction:         0.00

30 sec, concurrency 10, 8mb body

Unix-socket:

Transactions:          550 hits
Availability:       100.00 %
Elapsed time:        29.06 secs
Data transferred:        22.40 MB
Response time:         0.06 secs
Transaction rate:        18.93 trans/sec
Throughput:         0.77 MB/sec
Concurrency:         1.06
Successful transactions:         550
Failed transactions:            0
Longest transaction:         0.21
Shortest transaction:         0.02

TCP:
Transactions:          546 hits
Availability:       100.00 %
Elapsed time:        29.59 secs
Data transferred:        22.23 MB
Response time:         0.06 secs
Transaction rate:        18.45 trans/sec
Throughput:         0.75 MB/sec
Concurrency:         1.10
Successful transactions:         546
Failed transactions:            0
Longest transaction:         0.25
Shortest transaction:         0.03
« Последнее редактирование: 01 Апреля 2015, 00:35:45 от .ubuntufan »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Какую архитектуру выбрать для веб-сервера?
« Ответ #14 : 01 Апреля 2015, 01:09:18 »
Ну и? Разница в 0,05% ? Не смешите мои тапочки.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.018 секунд. Запросов: 21.