Code Monkey home page Code Monkey logo

Comments (29)

z3APA3A avatar z3APA3A commented on July 19, 2024

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

from 3proxy.

zett83 avatar zett83 commented on July 19, 2024

ну это как посмотреть.
одним из критериев при выборе какой софт использовать под proxy - была возможность без полной перезагрузки сервиса и обрыва всех соединений, менять конфигурацию с помощью систем управления конфигурациями типа ansible, puppet, ... чем угодно.

для статических конфигов (раз настроил и забыл - согласен, избыточен).

так к примеру, такой софт как accel-ppp, openvpn, умеют подхватывать изменение конфигурации на лету. т.е. просто мянем файл (напрямую, без .tmp file, без добавления лишних строк monitoring и т.п.) и всё подхватывается. и это есть очень удобно, нет никакого downtime и проблем с использованием любой управлялки конфигами.

в случем с include и monitoring, получается всё грустно в том случае если мы не знаем сколько будет файлов для мониторинга. тогда мы подключаем 1 файл и мониторим, и уже в этом файле опять добавляем кучу include + monitoring. (1 большой файл очень тяжело и не удобно править)
это всё лишние действия, лишнее время, лишние баги...

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

ps: ну и конечно-же огромная благодарность за проделанную работу!

from 3proxy.

zett83 avatar zett83 commented on July 19, 2024

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

from 3proxy.

z3APA3A avatar z3APA3A commented on July 19, 2024

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

from 3proxy.

z3APA3A avatar z3APA3A commented on July 19, 2024

Может вместо починки велосипеда костылями проще сделать, например, возможность через веб-интерфейс добавлять/дизейблить юзеров без перезагрузки конфигурации?

from 3proxy.

zett83 avatar zett83 commented on July 19, 2024

Ну почему костыль, в большинстве более менее серьезных сервисах есть такая
возможность, там везде костыли? )
nginx, openvpn и т.д. и т.п.

проблема вот в чем:
у нас есть 1 центральный сервер с веб интерфейсом (нашим, самописным,
который управляет конфигурациями 3прокси)
и есть более 50 серверов с 3proxy и у каждого свои конфиги, (база данных
отпадает т.к. при её паденнии упадет всё)
менять что-то в огромном файле с пользователями жутко не удобно, и вылазит
очень много косяков, уже проверено.
по-этому мы разделили 1-пользователь = 1 файл с acl и это потом всё
инклудиться через ещё 1 основной файл типа users.list в котором куча
инклудов и который в свою очередь мониториться

по этой схеме мы добавляем файл с acl, потом добавляем include в
users.list, и 3proxy сам подхватывает это дело и релоадид конфиги
было бы просто очень удобно кидать файлы с помощью чего угодно (scp, nfs
или тому подобного по серверам, без изменений конфига users.list или любых
других конфигов)

в рамках одного сервера это всё сделать конечно проще через 1 файл, но
когда серверов больше 2 уже становиться тяжеловато всё это делать
изменением содержимого файлов.

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

так что один файл это вообще не вариант, просто это очень не удобно, и
потом в нем что-то искать тоже жутко не удобно (
к примеру нас по 250+ пользователей, найти в 1 конфиги что пошло не так -
ещё то веселое занятие.

а так лежит кучка файлов название которого отвечает за определенного
пользователя, всё просто и понятно.

from 3proxy.

z3APA3A avatar z3APA3A commented on July 19, 2024

Не надо мониторить все файлы ни в коем случае, 3proxy все равно пересчитывает конфигурацию целиком.

from 3proxy.

z3APA3A avatar z3APA3A commented on July 19, 2024

Можете делать 100500 файлов, но мониторьте один. После любых изменений любого из 100500 файлов - меняйте этот 1 файл или делайте для него touch чтобы время поменялось.

from 3proxy.

zett83 avatar zett83 commented on July 19, 2024

мы мониторим 1 файл users.list в котором прописаны куча include к файлам acl

редактировать этот файл на удаленных машиных не удобно и затратно по
времени и это вообще лишняя операция.
в других сервиса не прокси, это ограничивается просто заливкой конфига в
каталог типа conf.d/*.conf и он оттуда сам подхватывается, через service
nginx reload (к примеру)
или вообще на автомате, определяя что появился новый файл в каталоге.

4 апреля 2016 г., 11:09 пользователь Vladimir Dubrovin <
[email protected]> написал:

Можете делать 100500 файлов, но мониторьте один. После любых изменений
любого из 100500 файлов - меняйте этот 1 файл или делайте для него touch
чтобы время поменялось.


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
#24 (comment)

from 3proxy.

z3APA3A avatar z3APA3A commented on July 19, 2024

Так вы можете делать точно так же - заливать все файлы, потом делать reolad 3proxy, reload делается по SIGUSR1. Тогда ничего мониторить не надо.

from 3proxy.

zett83 avatar zett83 commented on July 19, 2024

да только ещё надо:

добавлять строку в users.list
include /новый конфиг
(от вот этого мы хотим уйти, что-бы мониторился каталог с файлами)

service reload 3proxy

from 3proxy.

zett83 avatar zett83 commented on July 19, 2024

что-бы он просто сам генерил список include'ов по каталогу, можно и так сказать. )
хотя наверное проще это запихнуть в service 3proxy reload скрипт )

from 3proxy.

z3APA3A avatar z3APA3A commented on July 19, 2024

Так можно и в 3proxy.cfg через system вставить команду

from 3proxy.

zett83 avatar zett83 commented on July 19, 2024

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

это как-то можно сделать?

просто в этом случае всё отваливается или недозагружается (

from 3proxy.

z3APA3A avatar z3APA3A commented on July 19, 2024

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

from 3proxy.

zett83 avatar zett83 commented on July 19, 2024

вот последнее точно костыль.

насколько сложно сделать такую конструкцию:
include /etc/3proxy/users/*.conf

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

это очень облегчит жизнь )

from 3proxy.

zett83 avatar zett83 commented on July 19, 2024

ну и последнее если 1 раз в минуту мониторит файл указанный в monitor.
что будет если он не успеет сделать релоад за минуту, с большим конфигом я думаю это запросто. + за эту минуту опять что-то измениться.

from 3proxy.

z3APA3A avatar z3APA3A commented on July 19, 2024

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

from 3proxy.

zett83 avatar zett83 commented on July 19, 2024

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

а городить огород и ещё кучу доп скриптов для создания списка инклюдов, - это костыли!!!
ИМХО, удобней конфигурить сервис в каталог которого можно просто подкидывать файлы и делать reload? без танцев с бубном и написания каких то скриптов которые будет давать доп нагрузку, баги и вообще непонятно что. этот функционал должен быть реализован из коробки, а не внешними костылями.

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

ладно спорить можно долго...

from 3proxy.

z3APA3A avatar z3APA3A commented on July 19, 2024

Спорить не о чем - как прокси узнает, докидал ли ты файлы в каталог и можно пересчитывать конфигурацию - или еще нет и ты закинул только половину? Тем более что ты кидаешь по сети, могут возникнутб сетевые проблемы и даже grace period не спасет.

from 3proxy.

zett83 avatar zett83 commented on July 19, 2024

а почему это работает на всех других сервисах? ) я доливаю файлы для openvpn и accel-ppp без перезагрузки сервисов. и всё работает!

nginx - тоже самое, только с reload ручным.

я уже не прошу что-бы оно мониторило. я прошу просто include с маской!
после заливки я сам буду делать релоад конифуграции. мне не сложно сделать скрипт который будет это делать это дело 5 минут. просто было бы очень удобно если бы это было из коробки и не городить огород на 50+ серверах с этими скриптами.

from 3proxy.

zett83 avatar zett83 commented on July 19, 2024

ну дело ваше, ушел писать скрпит...

from 3proxy.

zett83 avatar zett83 commented on July 19, 2024

по поводу как прокси узнает. смотри в сторону inotify - я это реализовывал на python.
там можно выловить event по которому и перезагружать. всё это есть и работает у меня для других целей.

from 3proxy.

z3APA3A avatar z3APA3A commented on July 19, 2024

По inotify я узнаю, что ты начал кидать файлы в каталог. Я и без него это узнаю. Как я узнаю, что ты закончил это делать и можно смело пересчитывать конфиг?

from 3proxy.

zett83 avatar zett83 commented on July 19, 2024

насколько помню IN_CLOSE event, хотя есть несколько способов.
второй хотя бы по отсутствию этих event'ов какое-то время )
но 1й должен работать, правда у меня немного другая задача была.

from 3proxy.

z3APA3A avatar z3APA3A commented on July 19, 2024

Ну ты закрыл файл, я начал релоадить конфигурацию, а ты в этот момент открываешь следующий файл в каталоге и начнешь его перезаписывать. Получаем фарш.

from 3proxy.

zett83 avatar zett83 commented on July 19, 2024

там если я не ошибаюсь как раз мониторинг каталога.

5 апреля 2016 г., 20:04 пользователь Vladimir Dubrovin <
[email protected]> написал:

Ну ты закрыл файл, я начал релоадить конфигурацию, а ты в этот момент
открываешь следующий файл в каталоге и начнешь его перезаписывать. Получаем
фарш.


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
#24 (comment)

from 3proxy.

z3APA3A avatar z3APA3A commented on July 19, 2024

Мониторинг-то каталога. Но операции открытия каталога и закрытия каталога не бывает. Мониторинг каталога генерирует события связанные с файлами в этом каталоге.

from 3proxy.

zett83 avatar zett83 commented on July 19, 2024

угу по доке так и есть.
я это делал давненько, и делал насколько помню так:

  1. отлавливал все события
  2. ждал какое-то изменение
  3. дожидался какое то время простоя т.е. там к примеру 10 сек без событий,
    и в этот момент производил свои действия

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

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

5 апреля 2016 г., 22:33 пользователь Vladimir Dubrovin <
[email protected]> написал:

Мониторинг-то каталога. Но операции открытия каталога и закрытия каталога
не бывает. Мониторинг каталога генерирует события связанные с файлами в
этом каталоге.


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
#24 (comment)

from 3proxy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.