Вы не зашли.
вот заинтересовался вопросом
голый apache как основной web сервер реально ли ? без связки с ngnix , какие настройки можно посоветовать что бы не падал и не зависал
, то есть какие оптимизации можно произвести
senior php and js developer
Не в сети
bestxp, голый апач ни в каких nginx'ах не нуждается.
Но есть несколько моментов, которые надо учитывать:
1. Апач на каждого клиента создаёт свой инстанс
2. Бывают клиенты с медленным каналом, пока клиент получает данные - инстанс апача висит в памяти
Т.е. до тех пор, пока у тебя нет проблем с оперативкой, всякие кеширующие движки типа nginx совершенно не нужны.
Пример:
- у тебя на сайте висит 20 картинок по 500 килобайт (итого ~= 10 mb)
- время генерации динамической страницы 0.10ms
- у тебя есть 10Gb RAM на сервере
К тебе заходит человек с медленным каналом в 128 kbit/s (12kb/s), но с агрессивно настроенным браузером, качающим данные одновременно в 10 сессиях.
Значит в течении всего скачивания данных (10mb / 15kb = 10 минут) для отдачи человеку всего контента тебе потребуется ~15 (средний размер апача)mb * 10 сессий = 150 mb.
Т.е. в штатном режиме апача и с предполагаемым размером сайта на 10Gb RAM ты сможешь обслужить до 60 одновременно качающих клиентов,.. путём простых расчётом вы получаем, что этого тебе достаточно для порядка 60/10 = 6 заходов тормозных клиентов в минуту.
Хочешь быстрее? Проблем нет - 100 Gb RAM хватит уже на 1 заход в секунду.
В случае же с nginx'ом, нам не требуется масса памяти для отдачи медленного контента (ну... да, сам nginx может "сожрать" 10-100 mb в зависимости от настроек) и на 10 Gb RAM ты сможешь получить 10Gb / 15 Mb / 0.1 sec = 6000 хитов в секунду (это если у тебя хватит производительности CPU, LAN и скорости работы диска).
.. вопрос исчерпан?
p.s. Если на твой апач не будут ходить такие медленные клиенты, то разница будет не столь существенна
Не в сети
можно ли как нибудь этого агресивного пользователя который качает в несколько потоков утихомирить ,
и разрежишь получать в один поток, отразиться ли это все на производительности сервера,
вроде как то можно порезеать одновременные скачивания от одного клиента, что бы качал в один поток, увеличиться ли от этого нагрузка на апач, или она наоборот снизиться.
senior php and js developer
Не в сети
bestxp, ограничить агрессивность можно. Но позволить себе это может далеко не каждый сайт.
Есть 4 пути:
1. Запретить доступ на сайт всем пользователям у которых настроено скачивание более чем в 1 поток (насколько я помню, во всех современных браузерах используется минимум 3 потока)
2. Предложить пользователю патч для реестра (или описание необходимых настроек в тех браузерах, где это возможно) для перенастройки браузера, после этого пускать на сайт. Тех кто не согласен или не настроил - банить.
3. Не размещать на сайте тяжеловесный внешний контент (JS, CSS, картинки), в идеале - вообще не использовать его.
4. Запихнуть весь контент в саму страничку (CSS/JS - легко, для картинок тоже проблем нет если у пользователя стоит нужный браузер)
Первые 2 варианта могут себе позволить ну просто жизненно необходимые сайты. Типа сайта налоговой, на котором можно подавать налоговые декларации...
p.s. Короче, забей. На скачивание файлов ты можешь установить ограничение предупреждением (скачаешь в 2 потока - получишь бан на сутки), а вот на скачивание контента файлов ты не можешь влиять без перенастройки браузера пользователя (и после этой перенастройки у пользователя начнут тормозить все сайты).
Не в сети
после сидения с калькулятором понял , что стоит помучаться ибо сервер умрет как только одновременный онлайн станет более 100 человек( а это будет быстро, всё таки nginx нужна штука
senior php and js developer
Не в сети