dzz: プログラマ (Programming)
[personal profile] dzz
...тем больше он мне нравится. Раньше близко не сталкивался (всю жизнь использовал апач), пришлось разобраться в рамках одного проекта. И - проникся :)

Date: 2018-08-21 07:40 pm (UTC)
From: [identity profile] dzz.livejournal.com
Апач апачу - люпус эст.

Если повыкидывать почти все модули - будет лёгким и относительно быстрым (хотя, статику nginx таки быстрее раздаёт). Если вкрячить в него тот же mod_php и активно юзать соответствующие скрипты - в мегабайт RSS не уложится, и в два тоже.

В общем, готовить умеем, просто всякому овощу - свой фрукт.
Edited Date: 2018-08-21 07:41 pm (UTC)

Date: 2018-08-22 06:32 am (UTC)
vitus_wagner: My photo 2005 (white)
From: [personal profile] vitus_wagner
Встраивать в апач интерпретаторы скриптовых языков категорически нельзя. Я даже mod_rewrite стараюсь избегать. Ибо в нем регулярно эксплойты находят.

К сожалению, апач (во всяком случае mpm_prefork) крут именно тем, что активно использует механизм copy-on-write. Это дает кучу бенефитов в плане секьюрити, но плохо кончается когда в долгоживущие процессы начинают грузить скриптовый байткод, который с точки зрения ядра является данными.

К сожалению, за 20 лет, которые эта проблема существует, никто так и не придумал, как подружить интерпретаторы с COW. Они не умеют разделять свой сегмент данных на "вечные" страницы, куда загружен байт-код библиотек, и которые должны шариться между процессами, и "быстротекущие", в которых лежат данные текущего запроса. Поэтому "вечные" страницы (которых на порядок больше) не шарятся и память расходуется в страшных количествах.

Поэтому апач имеет смысл там, где динамики мало. И эта динамика должна быть CGI. Процесс, куда грузится сайт-специфичный (пишущийся по месту и потенциально ненадежный) код, должен быть убит после обработки одного запроса.

Кстати. пухлость браузеров имеет ту же природу. Нынешние браузеры это в первую очередь интерпретаторы - XUL, javascript, css, И имеют те же проблемы c неумением разделять код и данные. Что еще усугубляется проблемой недоверенного кода.

Date: 2018-08-22 09:48 am (UTC)
From: [identity profile] dzz.livejournal.com
>Нынешние браузеры это в первую очередь интерпретаторы - XUL, javascript, css...

...HTML5 :)))

Пользователи хотят красивостей и мышовой интерактивности и не согласны тупо вводить текст в прямоугольные формочки, как 20 лет назад. Я сам не готов, если что ;)

Тот, кто полнее соответствует ожиданиям пользователей, выигрывает рынок. Банальный капитализм, в общем.
Edited Date: 2018-08-22 09:52 am (UTC)

Date: 2018-08-22 02:12 pm (UTC)
From: [identity profile] avnik.livejournal.com
> К сожалению, за 20 лет, которые эта проблема существует, никто так и не придумал, как подружить
> интерпретаторы с COW. Они не умеют разделять свой сегмент данных на "вечные" страницы, куда
> загружен байт-код библиотек, и которые должны шариться между процессами, и "быстротекущие", в
> которых лежат данные текущего запроса. Поэтому "вечные" страницы (которых на порядок больше) не
> шарятся и память расходуется в страшных количествах.

ну так это (в принципе) решается прекомпиляцией байткода в один большой файл, который можно mmap'нуть.

C другой стороны -- с долгоживущими процессами уже хочется уходить от интепретируемых языков в сторону компиляторов (и желательно строгой статической типизации).

Date: 2018-08-22 03:50 pm (UTC)
vitus_wagner: My photo 2005 (white)
From: [personal profile] vitus_wagner
А уход в сторону компиляции, причем не важно, пишешь ты компилируемый код модулем в апач или отдельным процессом, все эти проблемы мнговенно решает.

Date: 2018-08-25 06:22 pm (UTC)
From: [identity profile] dzz.livejournal.com
Встраивание кода приложения непосредственно в апач порождает больше проблем, чем решает, просто проблемы эти - другого свойства.

В частности, разделение зон ответственности администраторов системы и приложений, апгрейды приложений при их совместном функционировании в теле одного сервера и т.п. Нуегонафиг.
Edited Date: 2018-08-25 07:42 pm (UTC)

Date: 2018-08-26 06:29 am (UTC)
vitus_wagner: My photo 2005 (white)
From: [personal profile] vitus_wagner
Ну вот собственно, в нашу эпоху всеобщей контейнеризации про разделение зон ответственности администраторов можно забыть. Не внутри процесса их разделять.

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

Кстати, тут недавно столкнулся с вопросом: "А что будет делать постгрес если юзеры захотят одновременно использовать PL/Python2 и PL/Python3?". Выяснил что пока это разные сессии то все ОК.

Выясняли, кстати, под соусом "А какие грабли нам грозят, если мы захотим перевести постгрес с многопроцессной модели на многонитевую".

Date: 2018-08-25 01:37 pm (UTC)
From: [identity profile] alex-butenko.livejournal.com
Поэтому апач имеет смысл там, где динамики мало. И эта динамика должна быть CGI. Процесс, куда грузится сайт-специфичный (пишущийся по месту и потенциально ненадежный) код, должен быть убит после обработки одного запроса. Кстати. пухлость браузеров имеет ту же природу. Нынешние браузеры это в первую очередь интерпретаторы - XUL, javascript, css, И имеют те же проблемы c неумением разделять код и данные. Что еще усугубляется проблемой недоверенного кода.

Я про это и говорю. Это практика 90х :)

Date: 2018-08-25 02:46 pm (UTC)
vitus_wagner: My photo 2005 (white)
From: [personal profile] vitus_wagner
В 90-е годы веб был собранием людей, которые делились друг с другом информацией.
Современный веб является собранием людей, которые оказывают друг другу коммерческие услуги (т.е. прытаются друг друга кинуть и друг другом манипулировать).

Date: 2018-08-25 02:47 pm (UTC)
From: [identity profile] alex-butenko.livejournal.com
:) я согласен. Но количество трафика ростет. И чтоб сейчас зарабатывать на жизнь нужны решения которые нужны именно этим людям.

Date: 2018-08-25 02:55 pm (UTC)
From: [identity profile] alex-butenko.livejournal.com
если убрать из апача mod_php/etc, mod_rewrite то какой толко остается от апача? :)

Date: 2018-08-25 04:36 pm (UTC)
From: [identity profile] dzz.livejournal.com
Hy там ещё до чёрта разных mod_ :)))

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

Date: 2018-08-25 07:27 pm (UTC)
From: [identity profile] alex-butenko.livejournal.com
то что оно привычнее это факт. К счастью доки по nginx как по-мне, так намного проще и понятнее написаны. А для совсем тупых прямо кукбуки есть.
Я наверное до позапрошлого года пользовался апаче везде, а потом как посмотрел в сторону nginx'а один раз, так и сразу все понял :)

December 2025

S M T W T F S
  12 3456
7 8 9 10 11 1213
14151617181920
21222324252627
28 29 3031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 31st, 2025 05:59 pm
Powered by Dreamwidth Studios