Re: announcing freenginx.org
С моей колокольни: вечная проблема Open Source проектов - мало активных разработчиков, потому что бесплатно - с одной стороны. Коммерциализация и плохой менеджмент проектов, которые НЕ Open Source. Можно пачку новых freenginx'ов создать, вопрос - хватит ли сил это разрабатывать и поддерживать? Сколько разных форков как появились так и пропали спустя пару лет. чт, 15 февр. 2024 г. в 10:18, Andrey Kopeyko : > Gena Makhomed писал 2024-02-15 04:17: > > On 14.02.2024 19:59, Maxim Dounin wrote: > > > >> Подобный подход можно понять: они владеют проектом, и могут с ним > >> делать всё, что считают нужным, включая подобные маркетинговые > >> акции. Это, однако, противоречит нашемоу соглашению. И, что более > >> важно, я больше не имею возможности как-либо контролировать > >> изменения, которые вносят в nginx в F5, и не могу рассматривать > >> nginx как открытый и свободный проект, разрабатываемый для общего > >> блага. > >> > >> Так что, начиная с сегодняшнего дня, я больше не участвую в > >> разработке nginx'а в рамках F5. Вместо этого я запускаю > >> альтернативный проект, управлять которым будут разработчики, а не > >> корпоративные структуры: > >> > >> http://freenginx.org/ > >> > >> Цель проекта - обеспечить разработку nginx'а, свободную от > >> произвольного корпоративного вмешательства. Помощь и участие > >> приветствуются. Надеюсь, проект будет полезен для всех. > > > > Максим, тут есть одна очень большая проблема. > > > > Владельцем торговой марки NGINX является компания F5 NETWORKS, INC. > > https://trademarks.justia.com/853/12/nginx-85312802.html > > > > Своего разрешения на использование своей торговой марки NGINX > > F5 NETWORKS, INC. Вам не давала, и скорее всего, что никгда не даст. > > Максим, > > Геннадий беспокоится обоснованно, и соображения написал все очень > верные. > > Если хочешь, могу попробовать организовать тебе консультацию по > "доменам, IP, ТМ и судебном опыте вокруг этого всего" у специалистов > Ру-Центра. За последние 25 лет они на этом не одну собачью стаю съели, и > по буржуйским доменам тоже. > > > > > > А вот дальнейшее развитие событий предусмотреть совсем не трудно. > > Они будут преследовать Вас в судебном порядке за trademark infringement > > > > Сначала - будет UDRP - Uniform Domain Name Dispute Resolution > > > https://www.icann.org/resources/pages/trademark-infringement-2017-06-20-en > > а потом - могут в конечном итоге и вообще отобрать > > у Вас домен freenginx.org этот домен станет их собственностью. > > Учитывая их доходы - они смогут найти деньги на очень хороших > > юристов и адвокатов, так что вопрос утраты контроля над доменом > > freenginx.org - это не вопрос "если", это вопрос "когда" > > - они это сделают. А если не сделают сейчас - то смогут сделать > > в любой момент в будущем, полностью отобрав этот домен и запретив > > Вам каким-либо образом использовать торговую марку NGINX. Например, > > они могут заняться этим вопросом не сразу, а через некоторое время, > > когда Ваш проэкт наберет некоторую популярность и посещаемость сайта > > станет высокой. Имеет ли смысл так сильно рисковать основной веткой? > > https://www.wipo.int/amc/en/domains/guide/ > > > > > > https://en.wikipedia.org/wiki/Trademark_infringement > > - законодательство тут на их стороне и по закону они будут правы. > > В https://en.wikipedia.org/wiki/WIPO входят практически все страны мира > > и trademark infringement является нарушением закона практически в любой > > стране. Даже если они не будут заниматься тем, чтобы отбирать у Вас > > права на домен freenginx.org - они это смогут сделать в любой момент > > времени в будущем, когда посчитают это целесообразным. > > Может быть лучше будет переименовать проект в какое-то другое имя, > > в котором вообще не будут упоминаться ничьи торговые марки? > > > > Когда-то проекту CentOS пришлось не только убирать все упоминания > > торговой марки Red Hat - они были вынуждены даже убрать все упоминания > > Red Hat и заменить их на PNAELV. > > > > PNAELV - это Prominent North American Enterprise Linux Vendor, > > это слово не является ничьей торговой маркой и его использование > > не запрещено. А вот торговую марку Red Hat без их разрешения > > использовать нельзя. Аналогично будет и с торговой маркой NGINX. > > > > Аналогично, например, было и с торговой маркой Apache - > > из-за чего все дистрибутивы были вынуждены переименовать > > веб-сервер в httpd. > > > > Поэтому - лучше будет для основной ветки веб-сервера выбрать какое-то > > имя, которое не является ничьей торговой маркой и для защиты этого > > имени - зарегистрировать свою торговую марку, чтобы не было потом > > ситуации "обратного захвата домена" - это когда вы используете > > какое-то доменное имя, например, something.ru, при этом - > > something не ялвяется торговой маркой. И потом, через какое-то > > время - какой-то совершенно посторонний человек, регистрирует > > торговую марку something, подает на Вас в суд и по решению суда > > отбирает у Вас контроль над доменом something.ru
Re: ip_hash и адреса клиентов
Почитал по ссылке. Никакого упоминания про ip_hash не нашёл. Использование данного модуля ТОЧНО повлияет на поведение ip_hash? С уважением, Виктор чт, 11 мая 2023 г. в 10:22, Vladimir jdwuzhere : > https://nginx.org/en/docs/http/ngx_http_realip_module.html > > > On 11 May 2023, at 08:28, Виктор Вислобоков > wrote: > > > > Доброго времени суток, коллеги. > > > > Вопрос такой. Как написано в документации: ip_hash Задаёт для группы > метод балансировки нагрузки, при котором запросы распределяются по серверам > на основе IP-адресов клиентов. В качестве ключа для хэширования > используются первые три октета IPv4-адреса клиента или IPv6-адрес клиента > целиком. Метод гарантирует, что запросы одного и того же клиента будут > всегда передаваться на один и тот же сервер. Если же этот сервер будет > считаться недоступным, то запросы этого клиента будут передаваться на > другой сервер. С большой долей вероятности это также будет один и тот же > сервер. > > > > А каким образом определяется IP адрес клиента? Рискну предположить, что > из $remote_addr? Дело в том, что всё больше и больше сайтов используют > предварительную защиту от атак, типа ддос-гард, куратор, касперский и т.д. > Это означает, что все запросы приходят с одного и того же IP-адреса (или > пула адресов) сервера, осуществляющего защиту. Да, при этом, обычно > выставляется заголовок X-Real-IP содержащий фактический IP, но я не нашёл в > документации упоминаний о том, каким образом можно настроить ip_hash так, > чтобы он брал IP-адрес клиента из какого-либо заголовка. > > > > Кто знает как это сделать? > > > > С уважением, Виктор > > ___ > > nginx-ru mailing list > > nginx-ru@nginx.org > > https://mailman.nginx.org/mailman/listinfo/nginx-ru > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > https://mailman.nginx.org/mailman/listinfo/nginx-ru > ___ nginx-ru mailing list nginx-ru@nginx.org https://mailman.nginx.org/mailman/listinfo/nginx-ru
ip_hash и адреса клиентов
Доброго времени суток, коллеги. Вопрос такой. Как написано в документации: ip_hash Задаёт для группы метод балансировки нагрузки, при котором запросы распределяются по серверам на основе IP-адресов клиентов. В качестве ключа для хэширования используются первые три октета IPv4-адреса клиента или IPv6-адрес клиента целиком. Метод гарантирует, что запросы одного и того же клиента будут всегда передаваться на один и тот же сервер. Если же этот сервер будет считаться недоступным, то запросы этого клиента будут передаваться на другой сервер. С большой долей вероятности это также будет один и тот же сервер. А каким образом определяется IP адрес клиента? Рискну предположить, что из $remote_addr? Дело в том, что всё больше и больше сайтов используют предварительную защиту от атак, типа ддос-гард, куратор, касперский и т.д. Это означает, что все запросы приходят с одного и того же IP-адреса (или пула адресов) сервера, осуществляющего защиту. Да, при этом, обычно выставляется заголовок X-Real-IP содержащий фактический IP, но я не нашёл в документации упоминаний о том, каким образом можно настроить ip_hash так, чтобы он брал IP-адрес клиента из какого-либо заголовка. Кто знает как это сделать? С уважением, Виктор ___ nginx-ru mailing list nginx-ru@nginx.org https://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: .htaccess
Не будет. Проверено. 13.05.2019, Evgeniy Berdnikov написал(а): > On Mon, May 13, 2019 at 09:00:54AM +0300, Виктор Вислобоков wrote: >> >> Зачем, если пользователь может просто установить Apache? >> Читайте начальный пост ТС. Он говорил при наличии php-fpm. >> Связка nginx+apache увы, не даёт той производительности, которую даёт >> связка nginx+php-fpm. > > Перетащите всю требуху с .htaccess в nginx, и будет он тормозить > так же как Апач. :) > -- > Eugene Berdnikov > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: .htaccess
>> Зачем, если пользователь может просто установить Apache? Читайте начальный пост ТС. Он говорил при наличии php-fpm. Связка nginx+apache увы, не даёт той производительности, которую даёт связка nginx+php-fpm. 13.05.2019, Konstantin Tokarev написал(а): > > > 12.05.2019, 10:35, "Виктор Вислобоков" : >> По ответу на вопрос - насколько мне известно - нет. Всё ручками, >> ручками. Но сама тема давно уже назрела, на мой взгляд. >> >> Мне кажется пора бы уже nginx'у научиться эмулировать поведение apache >> и юзать его .htaccess при включении специальной директивы. > > Зачем, если пользователь может просто установить Apache? > > -- > Regards, > Konstantin > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: .htaccess
По ответу на вопрос - насколько мне известно - нет. Всё ручками, ручками. Но сама тема давно уже назрела, на мой взгляд. Мне кажется пора бы уже nginx'у научиться эмулировать поведение apache и юзать его .htaccess при включении специальной директивы. Я понимаю, что конфиг компилируется в момент запуска nginx, но всё-таки такое поведение логично. Сейчас пользователи, которые рулят поведением своего сайта самостоятельно, лишены возможности делать это с nginx, а это, на мой взгляд неправильно. Да, администратор может создать кастомные правила для конкретного сайта, но это именно что администратор, а не простой пользователь. В качестве полумеры, хотя бы получить средство, которое компилирует директивы .htaccess в директивы nginx, чтобы потом иметь возможность подгружать это в nginx через reload конфигурации nginx (который можно организовать клиенту через sudo и внешний скрипт, проверяющий валидность конфига). 12.05.2019, Victor Sudakov написал(а): > Коллеги, > > Много развелось Web-приложений и сайтов, которые очень сильно полагаются > на код в .htaccess. Смотришь - а там и RewriteRule, и "Header set...", и > установка каких-то переменных, и MIME types переопределяются... > > Есть какая-то общая теория и рекомендации, как всё это хозяйство > переносить под nginx, например под php-fpm ? > > -- > Victor Sudakov, VAS4-RIPE, VAS47-RIPN > 2:5005/49@fidonet http://vas.tomsk.ru/ > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: proxy_store периодически сохраняет только часть ответа :(
Кажется нашёл. У меня в настройках стояло так, что если файл кэша есть, то отавать его, если нет, то создавать. Но было ещё одно условие: если запрос POST то не отдавать, а создавать. Видимо при одновременном приходе GET и POST запросов ответ писался в один и тот же файл и возникала проблема. Пустил POST запросы вообще мимо кэша и файл перестал быть фрагментарным. Спасибо за участие всем, кто ответил! :) пн, 3 дек. 2018 г. в 08:52, Виктор Вислобоков : > >> А чем proxy_cache не устраивает ? прокси стор, это больше для "на > века", а Вы трете его зачемто постоянно > Куда и что сохраняет proxy_cache знает только сам proxy_cache. Найти > что-то сохранённое им на диске очень большая проблема, да и посмотреть что > там тоже не так просто. А в proxy_store можно задать вполне себе понятный и > человеко-читаемый путь и содержимое тоже вполне себе понятно. > > >> У Вас proxy_temp_path и место куда сторится на одном разделе ? > На одном. > > пн, 3 дек. 2018 г. в 00:15, Alexey via nginx-ru : > >> 02.12.2018 23:18, Виктор Вислобоков пишет: >> > Схема такая: nginx(1) -> nginx(2) -> httpd >> > На nginx(1) пытаюсь сделать кастомный статик кэш через proxy_store. >> > Почти работает, но в произвольный момент времени сохраняет на диск не >> > всю страницу с ответом, а только её часть! Это именно происходит >> > периодически и не зависит ни от IP адреса ни от клиента (тот же Zabbix >> > у меня то получает фрагмент и ругается на малый размер страницы, то в >> > следующий повтор всё получает нормально - стоит чистка файлов, >> > сохранённых proxy_store каждую минуту). >> > >> А чем proxy_cache не устраивает ? прокси стор, это больше для "на века", >> а Вы трете его зачемто постоянно >> >> У Вас proxy_temp_path и место куда сторится на одном разделе ? Если на >> разных, то, скорее всего, пока файл от одного запроса копируется, >> успевает прийти другой запрос и видя файл на месте его и отдает, ну >> сколько успело скопироваться на момент второго запроса столько и отдает. >> >> ___ >> nginx-ru mailing list >> nginx-ru@nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: proxy_store периодически сохраняет только часть ответа :(
>> А чем proxy_cache не устраивает ? прокси стор, это больше для "на века", а Вы трете его зачемто постоянно Куда и что сохраняет proxy_cache знает только сам proxy_cache. Найти что-то сохранённое им на диске очень большая проблема, да и посмотреть что там тоже не так просто. А в proxy_store можно задать вполне себе понятный и человеко-читаемый путь и содержимое тоже вполне себе понятно. >> У Вас proxy_temp_path и место куда сторится на одном разделе ? На одном. пн, 3 дек. 2018 г. в 00:15, Alexey via nginx-ru : > 02.12.2018 23:18, Виктор Вислобоков пишет: > > Схема такая: nginx(1) -> nginx(2) -> httpd > > На nginx(1) пытаюсь сделать кастомный статик кэш через proxy_store. > > Почти работает, но в произвольный момент времени сохраняет на диск не > > всю страницу с ответом, а только её часть! Это именно происходит > > периодически и не зависит ни от IP адреса ни от клиента (тот же Zabbix > > у меня то получает фрагмент и ругается на малый размер страницы, то в > > следующий повтор всё получает нормально - стоит чистка файлов, > > сохранённых proxy_store каждую минуту). > > > А чем proxy_cache не устраивает ? прокси стор, это больше для "на века", > а Вы трете его зачемто постоянно > > У Вас proxy_temp_path и место куда сторится на одном разделе ? Если на > разных, то, скорее всего, пока файл от одного запроса копируется, > успевает прийти другой запрос и видя файл на месте его и отдает, ну > сколько успело скопироваться на момент второго запроса столько и отдает. > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
proxy_store периодически сохраняет только часть ответа :(
Схема такая: nginx(1) -> nginx(2) -> httpd На nginx(1) пытаюсь сделать кастомный статик кэш через proxy_store. Почти работает, но в произвольный момент времени сохраняет на диск не всю страницу с ответом, а только её часть! Это именно происходит периодически и не зависит ни от IP адреса ни от клиента (тот же Zabbix у меня то получает фрагмент и ругается на малый размер страницы, то в следующий повтор всё получает нормально - стоит чистка файлов, сохранённых proxy_store каждую минуту). Всю голову сломал - не могу понять что за ерунда! Судя по логам nginx(2) всегда отдаёт полный ответ. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: unit-0.2 beta release
>> нет. на самом деле все сильно зависит от того, что происходит на каждый запрос внутри php. вполне возможно, что разницей между mod_php и php-fpm можно просто пренебречь. Простите, но я же не голословно говорю. Пытались мы, не один раз пытались, крутили все ручки, делали что только можно, но php-fpm делает apache+mod_php в разы. Попробуйте сами, наберите одинаковую конфигуацию на один сайт с тем и этим и запустите нагрузочное тестирование 20 октября 2017 г., 22:38 пользователь Slawa Olhovchenkov <s...@zxy.spb.ru> написал: > On Fri, Oct 20, 2017 at 07:19:59PM +0300, Виктор Вислобоков wrote: > > > >> nginx + php-fpm возможно выигрывает у nginx + apache/mod_php, но > > скореепо вине сложности правильной настройки последнего под данный > > микробенчмарк. > > Не так. nginx+php-fpm НАМНОГО выигрывает у nginx+apache/mod_php, а вот > > nginx+apache/fastCGI просто выигрывает у mod_php, хотя и ненамного. > > И выигрывают они не по вине сложности правильной настройки, а потому что > > mod_php встраивается в апаче, но вся функциональность apache которая > > обслуживает весь концерт никуда не девается, а она медленная. > > нет. на самом деле все сильно зависит от того, что происходит на > каждый запрос внутри php. вполне возможно, что разницей между mod_php > и php-fpm можно просто пренебречь. > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: unit-0.2 beta release
>> nginx + php-fpm возможно выигрывает у nginx + apache/mod_php, но скореепо вине сложности правильной настройки последнего под данный микробенчмарк. Не так. nginx+php-fpm НАМНОГО выигрывает у nginx+apache/mod_php, а вот nginx+apache/fastCGI просто выигрывает у mod_php, хотя и ненамного. И выигрывают они не по вине сложности правильной настройки, а потому что mod_php встраивается в апаче, но вся функциональность apache которая обслуживает весь концерт никуда не девается, а она медленная. >> fastCGI даже теоретически не может обогнать встроенное решение просто потому, что нужны накладные расходы на пересылку данных. Теоретически не знаю, а на практике обгоняет. По крайней мере на мультиюзер окружениях и это тоже понятно: ведь apache надо переключать контекст между раными userid, а fastCGI запускается отдельно для каждого юзвера. >>В связке nginx+php-fpm как минимум нужно настраивать сам nginx и конфиг для него, отдельно настраивать php-fpm, соответственно конфиг для него. Ну а тут надо будет настраивать Unit и конфиг для него, и от конфига php вы никуда не денетесь, потому как там тоже надо крутить. Без разницы в общем. >> Для разных пользователей используется один и тот же модуль. А кто переключает контект userid? Если Unit то на это будут уходить доп.ресурсы как у apache >> Насколько я знаю, перезагрузить добавить новый пул или удалить существующий, без затрагивания процессов, принадлежащих к другим пулам, в php-fpm невозможно. Да. Но там где юзер=инстанс, мы можем обойтись перезапуском инстанса юзверя >> Верно, об этих приседаниях и идет речь. И вам нужно об этом позаботиться, продумать и спланировать весь процесс и нигде не ошибиться. Для этого и придумали chef, ansible и прочее. Чтобы один раз оттестровать и не ошибиться. Дискуссию можно сворачивать, ибо спорить можно долго и наверное безрезультатно. Тем более пока Unit ещё ранняя бета. Поживём-посмотрим как будет дальше. 20 октября 2017 г., 18:56 пользователь Валентин Бартенев <vb...@nginx.com> написал: > On Friday 20 October 2017 18:21:35 Виктор Вислобоков wrote: > >> Unit будет быстрее nginx+php-fpm и тратить меньше ресурсов просто за > >> счет своей архитектуры. > > Очень спорное утверждение. fastCGI всегда выигрывало в споре с mod_php, > так > > что не вижу за счёт чего. > > Хочу увидеть сравнительные тесты. > > nginx + php-fpm возможно выигрывает у nginx + apache/mod_php, но скорее > по вине сложности правильной настройки последнего под данный микробенчмарк. > > fastCGI даже теоретически не может обогнать встроенное решение просто > потому, > что нужны накладные расходы на пересылку данных. > > > > > >> Меньше движущихся частей. Unit требует меньше настройки и приседаний, > >> чем связка nginx+php-fpm > > Опять же спорно. Для nginx + php-fpm требует лишь nginx из дистра и > php-fpm > > из дистра, нет необходимости дособирать какие-то доп.модули. А конфиги > для > > разных версий PHP всё равно будут разными. > > В связке nginx+php-fpm как минимум нужно настраивать сам nginx и конфиг для > него, отдельно настраивать php-fpm, соответственно конфиг для него. > > Вам не нужно собирать модули для Unit-а, если вы не собираетесь собирать > собственных версий php. Вы также их ставите из дистрибутива. > > # apt-get install unit-php unit-python2.7 unit-python3.5 unit-go > > И они обновляются вместе с обновлением php/python в дистрибутиве. > > > > > >> Если вам требуется запускать на php-fpm несколько приложений от разных > >> пользователей, то вам либо приходится использовать его pool-ы, либо > >> запускать отдельные независимые инстансы php-fpm. > > > > Верно, так и тут придётся дополнительный модуль к Unit собирать и > > подгружать. > > 1. Для разных пользователей используется один и тот же модуль. > > 2. Unit сам подгружает модули самостоятельно, для это не нужно ничего > делать. > > 3. Собирать свой модуль нужно только в случаях, когда вы сами собираете > свой php. > > 4. Не забывайте, что отдельный инстанс php-fpm - это ещё отдельный > слушающий > сокет и отдельная настройка в nginx под него. > > > > > >> В первом случае при добавлении, удалении, изменении > >> пользователя/приложения приходится перезапускать весь рой процессов, > даже > >> если остальная конфигурация не претерпела изменений. Это может быть > очень > >> накладно по ресурсам. > > > > Ничего накладного не вижу. nginx релоадится вообще прозрачно и незаметно. > > php-fpm тоже поддерживает reload хотя и не такой гладкий, да и > > перезапускать нужно будет только один нужный php-fpm > > Насколько я знаю, перезагрузить добавить новый пул или удалить > существующий, > без затрагивания процессов, п
Re: unit-0.2 beta release
>> А вообще есть сайты с тысячами SSL-сертификатов, переконфигурованием раз в минуту и соединениями, живущими сутками, из-за которых в памяти висят тысячи воркеров. Согласен, как и есть проекты, которые выносят функциональность nginx на уровень ядра Linux :) Специфика проектов бывает разная, кто бы спорил, но я скорее размышляю на предмет массовости использования Unit. 20 октября 2017 г., 18:26 пользователь Igor Sysoev <i...@sysoev.ru> написал: > > On 20 Oct 2017, at 18:21, Виктор Вислобоков <corocho...@gmail.com> > wrote: > > > > Ничего накладного не вижу. nginx релоадится вообще прозрачно и незаметно. > > В 2002 году я тоже так думал. > > А вообще есть сайты с тысячами SSL-сертификатов, переконфигурованием раз > в минуту и соединениями, живущими сутками, из-за которых в памяти висят > тысячи воркеров. > > > -- > Igor Sysoev > http://nginx.com > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: unit-0.2 beta release
>> Unit будет быстрее nginx+php-fpm и тратить меньше ресурсов просто за счет своей архитектуры. Очень спорное утверждение. fastCGI всегда выигрывало в споре с mod_php, так что не вижу за счёт чего. Хочу увидеть сравнительные тесты. >> Меньше движущихся частей. Unit требует меньше настройки и приседаний, чем связка nginx+php-fpm Опять же спорно. Для nginx + php-fpm требует лишь nginx из дистра и php-fpm из дистра, нет необходимости дособирать какие-то доп.модули. А конфиги для разных версий PHP всё равно будут разными. >> Если вам требуется запускать на php-fpm несколько приложений от разных пользователей, то вам либо приходится использовать его pool-ы, либо запускать отдельные независимые инстансы php-fpm. Верно, так и тут придётся дополнительный модуль к Unit собирать и подгружать. >> В первом случае при добавлении, удалении, изменении пользователя/приложения приходится перезапускать весь рой процессов, даже если остальная конфигурация не претерпела изменений. Это может быть очень накладно по ресурсам. Ничего накладного не вижу. nginx релоадится вообще прозрачно и незаметно. php-fpm тоже поддерживает reload хотя и не такой гладкий, да и перезапускать нужно будет только один нужный php-fpm >> Во втором случае, управлять этим всем добром гораздо сложнее. Unit не требует отдельного менеджмента, в отличии от нескольких независимых php-fpm; Пока я этого не увидел. Скорее наоборот - на каждую версию php-fpm нужен отдельный менеджмент Unit'а чтобы поключить соответствующий модуль. >> И во всех случаях требуются дополнительные приседания, чтобы обновить сам php или настройки приложения без потери запросов и просадки производительности. Если речь идёт о настолько критичных делах, то будет несколько апстримов, которые можно обновлять по одному без обозначенных потерь. >> Если завтра вам понадобится запустить ещё что-то на python, go, ruby, your language, у вас будет для этого уже знакомый и понятный инструмент. Вот! Наконец-то вижу сильный аргумент! Согласен. Но пока нам нужен только PHP, это неважно. >> Количество выполняемых функций будет расширяться, так что в дальнейшем Unit сможет стать не только легковесной заменой для php-fpm, но и ряда других компонентов, которые сейчас приходится использовать и настраивать в довесок. Поживём-увидим! Пока что я каких-то очевидных преимуществ, ради которых бы стоило переходить на Unit не увидел. 20 октября 2017 г., 18:05 пользователь Валентин Бартенев <vb...@nginx.com> написал: > On Friday 20 October 2017 17:27:30 Виктор Вислобоков wrote: > > >> Каждое приложение со своей конфигурацией полностью изолировано. Точно > > также, как были бы изолированы отдельные процессы php-fpm, запущенные > > независимо друг от друга на одной машине. > > > > Тогда я пока не вижу никакой выгоды от unit'а в сравнении со связкой > > nginx+php-fpm. > > > [..] > > В произвольном порядке: > > - Unit будет быстрее nginx+php-fpm и тратить меньше ресурсов просто за >счет своей архитектуры. > > - Меньше движущихся частей. Unit требует меньше настройки и приседаний, > чем >связка nginx+php-fpm. Просто потому, что вместо нескольких компонентов >с разными подходами к конфигурации, которые нужно связывать друг с > другом >и как-то затем мониторить, обновлять - получается один. > > - Если вам требуется запускать на php-fpm несколько приложений от разных >пользователей, то вам либо приходится использовать его pool-ы, либо >запускать отдельные независимые инстансы php-fpm. > >В первом случае при добавлении, удалении, изменении > пользователя/приложения >приходится перезапускать весь рой процессов, даже если остальная > конфигурация >не претерпела изменений. Это может быть очень накладно по ресурсам. > >Во втором случае, управлять этим всем добром гораздо сложнее. Unit не > требует >отдельного менеджмента, в отличии от нескольких независимых php-fpm; > >И во всех случаях требуются дополнительные приседания, чтобы обновить > сам php >или настройки приложения без потери запросов и просадки > производительности. > > - Если завтра вам понадобится запустить ещё что-то на python, go, ruby, > your >language, у вас будет для этого уже знакомый и понятный инструмент. > > - Количество выполняемых функций будет расширяться, так что в дальнейшем > Unit >сможет стать не только легковесной заменой для php-fpm, но и ряда других >компонентов, которые сейчас приходится использовать и настраивать в > довесок. > > -- > Валентин Бартенев > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: unit-0.2 beta release
>> В unit главный процесс сначала форкается, а потом динамически подгружает нужный модуль, который слинкован с соответствующей версией php/python. Поэтому можно одновременно запускать разные версии языков. Эээ... не совсем понял. А вот этот "нужный модуль" это часть Unit? Если да, то каким образом достигается его линковка например с разными версиями PHP одновременно? Или это целый набор "нужных модулей" каждый под нужную нам версию PHP? Если да, то получается мы должны собрать каждый такой "нужный модуль" для каждой версии PHP которую планируем использовать? 20 октября 2017 г., 17:29 пользователь Igor Sysoev <i...@sysoev.ru> написал: > > On 20 Oct 2017, at 17:21, Slawa Olhovchenkov <s...@zxy.spb.ru> wrote: > > > > On Fri, Oct 20, 2017 at 05:13:37PM +0300, Виктор Вислобоков wrote: > > > >>>> Так в таком случае использование unit еще выгоднее: ему не надо > держать > >> master-процесс для каждой версии php, не говоря о процессе для каждого > >> пользователя. > >> Не представляю как это будет работать. > >> Возьмём mod_php для апача - весь PHP грузится модулем в веб-сервер (а > >> безопасность обеспечивает скажем mod_ruid, переключая userid), но в этом > >> случае не получится загрузить в один веб-сервер несколько версий этого > >> модуля. > > > > на самом деле загрузить-то получится (наверное, не проверял), а вот > > активировать нужный для конкретно URL может быть проблемой. > > > > впрочем, возможно проблему решит правка сырцов для замены директив > > php_* на phpXY_*. > > > > в любом случае, nginx unit не решает проблему с pear и pecl, например, в > > случае php (и я не смотрел как он решает проблему с собственно php > > разных версий). > > В unit главный процесс сначала форкается, а потом динамически подгружает > нужный модуль, который слинкован с соответствующей версией php/python. > Поэтому можно одновременно запускать разные версии языков. > > > -- > Igor Sysoev > http://nginx.com > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: unit-0.2 beta release
>> Каждое приложение со своей конфигурацией полностью изолировано. Точно также, как были бы изолированы отдельные процессы php-fpm, запущенные независимо друг от друга на одной машине. Тогда я пока не вижу никакой выгоды от unit'а в сравнении со связкой nginx+php-fpm. 20 октября 2017 г., 17:25 пользователь Валентин Бартеневнаписал: > On Friday 20 October 2017 16:48:31 Slawa Olhovchenkov wrote: > > On Fri, Oct 20, 2017 at 04:42:54PM +0300, Maksim Kulik wrote: > > > > > Так в таком случае использование unit еще выгоднее: ему не надо держать > > > master-процесс для каждой версии php, не говоря о процессе для каждого > > > пользователя. > > > > > > P.S. Может я немного отстал от актуальных знаний о PHP-FPM, но зачем > под > > > каждого пользователя запускать отдельный master-процесс? Достаточно > ведь > > > завести для конкретного пользователя свой pool (работающий от имени > этого > > > пользователя), а мастер-процесс будет всегда один. Если я ошибаюсь - > > > скиньте, плиз, линку на почту где можно подробнее почитать об опасности > > > запуска одного мастер-процесса для разных пользователей. > > > > Это достаточно самоочевидно для любого, кто немного интересуется > > безопасностью. > > Ну и для програмистов эдак начиная примерно с 15+ лет опыта. Но лучше > 20+. > > В общем когда приходит понимание, что программ без ошибок не бывает. > > Тогда доходит и мысль о том, что общий мастер-процесс на всех должен > > иметь возможность читать конфиг принадлежащий любому пользователю и > > перезапускать пул(ы) от любого пользовательского UID, а это уже есть > > некторая дыра, т.к. он получается должен быть рутовым. > > В модели отдельного мастера на пользователя он после запуска > > безвозвратно дропает свои привелегии и эта схема в целом меньше > > подвержена протечкам. > [..] > > Основной процесс Unit-а, который работает от рута, не читает конфигов > и не взаимодействует с пользователями и их приложениями. > > Каждое приложение со своей конфигурацией полностью изолировано. Точно > также, > как были бы изолированы отдельные процессы php-fpm, запущенные независимо > друг > от друга на одной машине. > > -- > Валентин Бартенев > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: unit-0.2 beta release
>> на самом деле загрузить-то получится (наверное, не проверял), не получится. ибо даже разные версии PHP используют одно и тоже пространство имён функций и таблиц символов. >> впрочем, возможно проблему решит правка сырцов для замены директив Крайне в этом сомневаюсь. Если бы это было так просто, давно бы уже были решения на эту тему, а их нет. Когда нужны разные версии в режиме mod_php просто запускаешь второй сервер apache (здесь же) с другим модулем mod_php 20 октября 2017 г., 17:21 пользователь Slawa Olhovchenkov <s...@zxy.spb.ru> написал: > On Fri, Oct 20, 2017 at 05:13:37PM +0300, Виктор Вислобоков wrote: > > > >> Так в таком случае использование unit еще выгоднее: ему не надо > держать > > master-процесс для каждой версии php, не говоря о процессе для каждого > > пользователя. > > Не представляю как это будет работать. > > Возьмём mod_php для апача - весь PHP грузится модулем в веб-сервер (а > > безопасность обеспечивает скажем mod_ruid, переключая userid), но в этом > > случае не получится загрузить в один веб-сервер несколько версий этого > > модуля. > > на самом деле загрузить-то получится (наверное, не проверял), а вот > активировать нужный для конкретно URL может быть проблемой. > > впрочем, возможно проблему решит правка сырцов для замены директив > php_* на phpXY_*. > > в любом случае, nginx unit не решает проблему с pear и pecl, например, в > случае php (и я не смотрел как он решает проблему с собственно php > разных версий). > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: unit-0.2 beta release
>> Так в таком случае использование unit еще выгоднее: ему не надо держать master-процесс для каждой версии php, не говоря о процессе для каждого пользователя. Не представляю как это будет работать. Возьмём mod_php для апача - весь PHP грузится модулем в веб-сервер (а безопасность обеспечивает скажем mod_ruid, переключая userid), но в этом случае не получится загрузить в один веб-сервер несколько версий этого модуля. Или возьмём php-fpm, который сам по себе и который даёт возможность тому же nginx'у обращаться к своему сокету или порту, этих может быть до лешего версий, но тогда каждый из них является по сути самостоятельным процессом. >> Проблема слегка преувеличена и, если бы все были настолько параноидальными в безопасности - мы бы до сих пор не увидели систем виртуализации Скорее преуменьшена :) С виртуализацией несколько по-другому дело обстоит и сравнивать в данном случае некорректно. 20 октября 2017 г., 16:42 пользователь Maksim Kulik <kulm...@gmail.com> написал: > Так в таком случае использование unit еще выгоднее: ему не надо держать > master-процесс для каждой версии php, не говоря о процессе для каждого > пользователя. > > P.S. Может я немного отстал от актуальных знаний о PHP-FPM, но зачем под > каждого пользователя запускать отдельный master-процесс? Достаточно ведь > завести для конкретного пользователя свой pool (работающий от имени этого > пользователя), а мастер-процесс будет всегда один. Если я ошибаюсь - > скиньте, плиз, линку на почту где можно подробнее почитать об опасности > запуска одного мастер-процесса для разных пользователей. > > 20 октября 2017 г., 16:36 пользователь Виктор Вислобоков < > corocho...@gmail.com> написал: > >> >> Экономия ресурсов, например. Возьмем виртуальный хостинг, на котором >> установлено 5 версий PHP. Для каждой версии должен быть master-процесс >> php-fpm, который, как минимум, кушает память, сокет и т.д. >> >> На виртуальном хостинге для КАЖДОГО клиента должен быть запущен ОТДЕЛЬНЫЙ >> php-fpm процесс, иначе это не безопасность будет а решето! А раз отдельный >> php-fpm процесс со своим userid то и не важно какой версии PHP он будет - >> всё-равно его запускать придётся. Так что если используется php-fpm то >> никакой экономии ресурсов не будет >> >>> > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: unit-0.2 beta release
>> Экономия ресурсов, например. Возьмем виртуальный хостинг, на котором установлено 5 версий PHP. Для каждой версии должен быть master-процесс php-fpm, который, как минимум, кушает память, сокет и т.д. На виртуальном хостинге для КАЖДОГО клиента должен быть запущен ОТДЕЛЬНЫЙ php-fpm процесс, иначе это не безопасность будет а решето! А раз отдельный php-fpm процесс со своим userid то и не важно какой версии PHP он будет - всё-равно его запускать придётся. Так что если используется php-fpm то никакой экономии ресурсов не будет 20 октября 2017 г., 16:29 пользователь Maksim Kulikнаписал: > Экономия ресурсов, например. Возьмем виртуальный хостинг, на котором > установлено 5 версий PHP. Для каждой версии должен быть master-процесс > php-fpm, который, как минимум, кушает память, сокет и т.д. В идеале его еще > и мониторить надо на предмет доступности. Добавим сюда возможность > изменения конфигурации "на лету" без перезапуска рабочих процессов (на > случай перевода одного из 500 сайтов на другую версию PHP) - и мы получим > очень удобную замену нынешним костылям по крайней мере для хостеров. > > 20 октября 2017 г., 16:00 пользователь Илья Шипицин > написал: > >> >> >> 20 октября 2017 г., 13:45 пользователь Andrey Velikoredchanin < >> unclean...@gmail.com> написал: >> >>> Очень интересная штука! Обязательно будем пробовать. >>> >> >> можно поподробнее, чем именно интересна ? >> возможность запускать php или go - есть, всякие там php-fpm, caddy, ... >> >> понятно, что, скорее всего на unit тоже будет работать. а в чем >> преимущество, в двух словах? >> >> ___ >> nginx-ru mailing list >> nginx-ru@nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Как правильно совместить limit_req и ограничение по IP?
Огромное спасибо, Алексей. Действительно, всё работает! С уважением, Виктор 11 октября 2015 г., 23:25 пользователь Alex Vorona <vo...@amhost.net> написал: > 11.10.15 00:08, Виктор Вислобоков пишет: > >> Есть некий список адресов. Для этого списка необходимо отдавать страницы >> без ограничений, для всех остальных нужно сделать ограничение limit_req. >> Непонятно как это правильно сделать с учётом того, что limit_req внутри if >> не работает. >> >> На одном из форумов предлагается такое решение: >> >> geo $nolimit { >> default 0; >> 10.0.0.0/24 1; >> 192.168.0.0/24 1; >> } >> limit_req_zone $binary_remote_addr zone=ratezone:10m rate=5r/s; >> > > Попробуйте > > geo $nolimit { > default $binary_remote_addr; > 10.0.0.0/24 ""; > 192.168.0.0/24 ""; > } > limit_req_zone $nolimit zone=ratezone:10m rate=5r/s; > > Судя по http://nginx.org/r/limit_req_zone/en "Requests with an empty key > value are not accounted." запросы с пустыми ключами должны работать без > ограничений. > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Как правильно совместить limit_req и ограничение по IP?
Есть некий список адресов. Для этого списка необходимо отдавать страницы без ограничений, для всех остальных нужно сделать ограничение limit_req. Непонятно как это правильно сделать с учётом того, что limit_req внутри if не работает. На одном из форумов предлагается такое решение: geo $nolimit { default 0; 10.0.0.0/24 1; 192.168.0.0/24 1; } limit_req_zone $binary_remote_addr zone=ratezone:10m rate=5r/s; server { ... location / { error_page 418 = @nolimit; if ($limit) { return 418; } limit_req zone=ratezone burst=10 nodelay; # ... } location @nolimit { # ... no limit_req here } } но насколько это правильно, делать такое перенаправление? Есть ли какие-то другие способы? ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Директивы сжатия дублированы?
Сегодня разбирался с сжатием и открыл для себя, что мало сказать: gzip on надо ещё ОБЯЗАТЕЛЬНО перечислить MIME типы для которых будет осуществляться сжатие. Тогда возникает вопрос, а зачем тогда вообще нужен gzip on? По факту-то получается, что сжатие включается именно директивой gzip_types. Только путаница и дублирование. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Защита от шелов
Вам нужно добиться, чтобы php-скрипты запускались с правами пользователя, которому принадлежит сайт. На остальные сайты соответственно поставите права 0750 а апача и nginx добавите в группу пользователя, чтобы они могли читать файлы. Как добиться? Разные способы есть. Например использование вместо mod_php для PHP режимов suexec или fastCGI. Есть ещё и всякие модули к апачу типа mod_suid, mod_ruid которые работают совместно с mod_php. 18 августа 2013 г., 10:29 пользователь Русанов Олег lavan...@ya.ruнаписал: Здравствуйте. Есть ли способ предотвратить просматривать шелом другие сайты на виртуальном хосте? В конфиге сайта рут - папка где index.php, а шелл показывает, что root - это папка где все сайты находятся. Может быть в этом дело? -- С уважением, Олег Русанов. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Защита от шелов
php_value open_basedir /home/user/1.ru/docs такое спасает только от PHP. Но если запустить perl или ещё чего - проблема остаётся, потому что на них ограничения PHP не распространяются. Так что правильное решение - это разделение прав доступа по сайтам - всё остальное лишь полумеры 18 августа 2013 г., 12:44 пользователь Русанов Олег lavan...@ya.ruнаписал: На счет прав не знаю теперь, это у меня из кэша шелл грузился. оказывается, а так выше папки сайта не может выйти, если в в /home/user/etc/httpd.conf прописать. В общем работает и удобнее всего, наверное, это: в .htaccess добавить: php_value open_basedir /home/user/1.ru/docs 18.08.2013, 11:19, Русанов Олег lavan...@ya.ru: Directory /home/идентификатор/домен/docs php_admin_value open_basedir /home/идентификатор/домен/docs php_admin_value upload_tmp_dir /home/идентификатор/домен/docs/tmp /Directory Вот это работает все-таки, только если прописывать не в /home/user/ d.ru/conf/virtual.conf.manual, а в /home/user/etc/httpd.conf И права должны быть выключены для других. а Ру-Центр неплохой хостинг, у них еще в Амстердаме площадка открылась, так что по-моему они - лучший вариант. 18.08.2013, 11:03, Artem Vasiliev artem.vasil...@gmail.com: Сменить хостинг WBR Artem V. Vasiliev Sent from Mailbox for iPhone On Sun, Aug 18, 2013 at 10:58 AM, Русанов Олег lavan...@ya.ru wrote: Это слишком сложно, как я это сделаю на хостинге Ру-Центра? В конфиг Апача не помогает: Directory /home/идентификатор/домен/docs php_admin_value open_basedir /home/идентификатор/домен/docs php_admin_value upload_tmp_dir /home/идентификатор/домен/docs/tmp /Directory может это надо как-то в конфиг Энджиникса прописать? 18.08.2013, 10:45, Виктор Вислобоков corocho...@gmail.com: Вам нужно добиться, чтобы php-скрипты запускались с правами пользователя, которому принадлежит сайт. На остальные сайты соответственно поставите права 0750 а апача и nginx добавите в группу пользователя, чтобы они могли читать файлы. Как добиться? Разные способы есть. Например использование вместо mod_php для PHP режимов suexec или fastCGI. Есть ещё и всякие модули к апачу типа mod_suid, mod_ruid которые работают совместно с mod_php. 18 августа 2013 г., 10:29 пользователь Русанов Олег lavan...@ya.ru написал: Здравствуйте. Есть ли способ предотвратить просматривать шелом другие сайты на виртуальном хосте? В конфиге сайта рут - папка где index.php, а шелл показывает, что root - это папка где все сайты находятся. Может быть в этом дело? -- С уважением, Олег Русанов. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru , ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, Олег Русанов. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru , ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, Олег Русанов. , ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, Олег Русанов. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Re[2]: ModSecurity, защита WP и джумлы от ботов, перебирающих пароли
А мне кажется всё это неэффективно. IP адресов прорва и каждый задолбаешься блокировать, а нагрузка прёт. Эффективных вариантов вижу 2: 1. С помощью nginx сделать ограничение ОБЩЕГО количества подключений к отвечающему за пароль URL (т.е. /administrator/index.php для Джумлы и /wp-login.php для Вордпресса). Поставить скажем штуки 2 и всё. Да, так и сам владелец сайта зайти не сможет, но для его IP можно сделать исключение. Зато остальные сайты на сервере смогут нормально работать 2. С участием владельца сайта переименовать файл для входа в какое-нибудь трудное имя, например administator/indexHJK28bhy2H.php, чтобы данное имя было известно только владельцу сайта. А на /administator/index.php поставить статическую заглушку, которую nginx может отдавать со скоростью пулемёта. 4 августа 2013 г., 15:21 пользователь Vladislav Prodan univers...@ukr.netнаписал: --- Исходное сообщение --- От кого: Nick Knutov m...@knutov.com Дата: 3 августа 2013, 14:13:32 Тем, что он пропускает запросы на бекэнд. Размер ботнета, перебирающего пароли - примерно 100 000 ип. Он не весь сразу приходит, но в общем случае, или можно использовать простое ограничение вроде с одного ип не чаще 1 запроса в минуту/секунду, но это просто снижает нагрузку до приемлимого уровня, а не решает проблему. У меня скрипт каждые 5 минут парсит общий (суточный) лог нгинкса nginx-access.log. И если накапливается 30 запросов на перебор паролей вордпресса/джумлы с 1 IP, то этот IP добавляется в глобальный список deny. -- Vladislav V. Prodan System Network Administrator http://support.od.ua +380 67 4584408, +380 99 4060508 VVP88-RIPE ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: ModSecurity, защита WP и джумлы от ботов, перебирающих пароли
На этот файл можно натравить fail2ban и принимать необходимое решение. А если у вас несколько сотен виртуалхостов, ваш fail2ban будет жёско иметь сервер парся логи. А поскольку ботнеты бывают ну очень большими, вы ещё рискуете получить каку от ядра, когда таблица файрвола будет забита десятками тысяч IP адресов. 4 августа 2013 г., 17:40 пользователь Sergey Kobzar sergey.kob...@itcraft.org написал: On 08/04/13 14:59, Vladislav Prodan wrote: --- Исходное сообщение --- От кого: Виктор Вислобоков corocho...@gmail.com Дата: 4 августа 2013, 14:39:32 А мне кажется всё это неэффективно. IP адресов прорва и каждый задолбаешься блокировать, а нагрузка прёт. Кто задолбается блокировать? Скрипт? nginx? Для владельца ресурса достаточно трех попыток зайти на свой ресурс. А пороговое значение (у меня) - 30 попыток и есть куда снижать. Скрипт на awk, спокойно парсит гигобайтные логи за несколько (десятков) секунд. Эффективных вариантов вижу 2: 1. С помощью nginx сделать ограничение ОБЩЕГО количества подключений к отвечающему за пароль URL (т.е. /administrator/index.php для Джумлы и /wp-login.php для Вордпресса). Поставить скажем штуки 2 и всё. Да, так и сам владелец сайта зайти не сможет, но для его IP можно сделать исключение. Зато остальные сайты на сервере смогут нормально работать Белые списки само собой существуют. 2. С участием владельца сайта переименовать файл для входа в какое-нибудь трудное имя, например administator/indexHJK28bhy2H.**php, чтобы данное имя было известно только владельцу сайта. А на /administator/index.php поставить статическую заглушку, которую nginx может отдавать со скоростью пулемёта. А лучше пароль на директорию повесить. Joomla пишет в logs/error.php о неуспешных попытках аутентификации. Формат: date timepriorityclientipcategory На этот файл можно натравить fail2ban и принимать необходимое решение. __**_ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/**mailman/listinfo/nginx-ruhttp://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: ModSecurity, защита WP и джумлы от ботов, перебирающих пароли
Остальные сайты (да и атакуемые) и так прекрасно работают при правильном софте/конфигах. Ну-ну, блажен кто верует! При хорошей атаке с большого ботнета, даже циска ложиться, куда уж вам с вашими конфигами. Вас видимо просто ни кто ни разу КОНКРЕТНО не ддосил. 2 - да не очень хорошее решение. Тут предложили пароль ставить на каталог - тоже выход! 4 августа 2013 г., 18:58 пользователь Nick Knutov m...@knutov.com написал: Меня всегда неимоверно радовали господа, предлагающие что-нибудь глобально запрестить для всех ип и сделать исключение для ип одного человека. Догадайтесь почему :) Остальные сайты (да и атакуемые) и так прекрасно работают при правильном софте/конфигах. 2 - нереалистичная идея. Шаред хостинг например, таких сайтов - тысячи. Да и проблему никак не решает, потому что ссылка на этот логин будет на главной странице, например, потому что там кроме админа могут быть и другие юзеры. 04.08.2013 17:39, Виктор Вислобоков пишет: А мне кажется всё это неэффективно. IP адресов прорва и каждый задолбаешься блокировать, а нагрузка прёт. Эффективных вариантов вижу 2: 1. С помощью nginx сделать ограничение ОБЩЕГО количества подключений к отвечающему за пароль URL (т.е. /administrator/index.php для Джумлы и /wp-login.php для Вордпресса). Поставить скажем штуки 2 и всё. Да, так и сам владелец сайта зайти не сможет, но для его IP можно сделать исключение. Зато остальные сайты на сервере смогут нормально работать 2. С участием владельца сайта переименовать файл для входа в какое-нибудь трудное имя, например administator/indexHJK28bhy2H.php, чтобы данное имя было известно только владельцу сайта. А на /administator/index.php поставить статическую заглушку, которую nginx может отдавать со скоростью пулемёта. -- Best Regards, Nick Knutov http://knutov.com ICQ: 272873706 Voice: +7-904-84-23-130 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: ModSecurity, защита WP и джумлы от ботов, перебирающих пароли
Я - хостер. Я не верую, я это вживую вижу на наших серверах. Да я как бы тоже не погулять вышел Но у нас свои сборки софта, которые мы вылизываем А у меня к сожалению не всегда. И Plesk есть, например и даже nginx не везде возможен в силу разных причин. Маленькие ботнеты мы не замечаем, Аналогыгычно большие фильтруем Скорее средние Большие ботнеты можно фильтровать только при наличии циски да ещё не абы какой. А пароль на каталог - это неинтересно. Давайте сразу пароль на сайт. Пароль на сайт не надо, а вот пароль на административную часть сайта - почему нет? 4 августа 2013 г., 22:09 пользователь Nick Knutov m...@knutov.com написал: Я - хостер. Я не верую, я это вживую вижу на наших серверах. Но у нас свои сборки софта, которые мы вылизываем, и очень нестандартные конфиги, потому всё это работает. Маленькие ботнеты мы не замечаем, большие фильтруем, с нашей стороны всё обычно работает, если это боты, а не забивка канала. А циска - да, циска может и ложится. А пароль на каталог - это неинтересно. Давайте сразу пароль на сайт. Гарантированно решит проблему. 04.08.2013 21:56, Виктор Вислобоков пишет: Остальные сайты (да и атакуемые) и так прекрасно работают при правильном софте/конфигах. Ну-ну, блажен кто верует! При хорошей атаке с большого ботнета, даже циска ложиться, куда уж вам с вашими конфигами. Вас видимо просто ни кто ни разу КОНКРЕТНО не ддосил. 2 - да не очень хорошее решение. Тут предложили пароль ставить на каталог - тоже выход!\-- Best Regards, Nick Knutov http://knutov.com ICQ: 272873706 Voice: +7-904-84-23-130 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: ModSecurity, защита WP и джумлы от ботов, перебирающих пароли
Возможно. Я не специалист по Джумле. В Друпале например в /admin/ кроме администраторов никого не бывает. Но если стоит вопрос в том, что сервер лежит и не работают ВСЕ клиенты, или часть клиентов испытывает неудобства зато все могут работать, я выберу последнее. 4 августа 2013 г., 23:32 пользователь Nick Knutov m...@knutov.com написал: Потому что там бывают простые постоянные юзеры, у которых есть аккаунты для комментов, например. 05.08.2013 1:24, Виктор Вислобоков пишет: А пароль на каталог - это неинтересно. Давайте сразу пароль на сайт. Пароль на сайт не надо, а вот пароль на административную часть сайта - почему нет? -- Best Regards, Nick Knutov http://knutov.com ICQ: 272873706 Voice: +7-904-84-23-130 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Отработка лимитов, вопрос
Сегодня столкнулся со странной вещью Стоит nginx 1.2.7 В нём сделаны ограничения по виртуалхостам с помощью limit_conn_zone и limit_conn Всё работало идеально до сегодняшнего вечера. Случилась атака на сайт и смотрю в apache /server-status что куча коннектов к тому виртуалхосту, к которому их быть не должно согласно limit_conn больше 5. Полез разбираться в логи. В логах я вижу сработавшие limit_conn 2013/04/16 01:52:21 [error] 11652#0: *248356 limiting connections by zone from_all_limit, client: 196.205.118.51, server: XX.net, request: GET / HTTP/1.1, host: XX.net, referrer: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 всё бы классно, но почему тогда столько коннектов висит на апачах? Посмотрел ещё лог nginx, много 400-х Тогда возникла мысль, а не происходит ли следующее: 1. Клиент запрашивает у nginx страницу, но не дожидаясь её обрывает соединение 2. nginx передаёт запрос апачу и ждёт от него ответа, но поскольку клиент соединение закрыл из limit_conn оно удаляется. 3. вот и получается картина, что у апача есть куча запросов, которые он обрабатывает, но которые уже не нужны ни nginx'У ни клиенту Поскольку я не разбираюсь в тонкостях реализации, написал сюда. Я прав, так всё и просиходит? ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru