Comments (29)
не очень нужный функционал, т.к. можно просто каждый include дублировать командой monitor, + в таком режиме при заливке нескольких файлов обновление гарантировано начнется раньше, чем все файлы будут залиты.
from 3proxy.
ну это как посмотреть.
одним из критериев при выборе какой софт использовать под proxy - была возможность без полной перезагрузки сервиса и обрыва всех соединений, менять конфигурацию с помощью систем управления конфигурациями типа ansible, puppet, ... чем угодно.
для статических конфигов (раз настроил и забыл - согласен, избыточен).
так к примеру, такой софт как accel-ppp, openvpn, умеют подхватывать изменение конфигурации на лету. т.е. просто мянем файл (напрямую, без .tmp file, без добавления лишних строк monitoring и т.п.) и всё подхватывается. и это есть очень удобно, нет никакого downtime и проблем с использованием любой управлялки конфигами.
в случем с include и monitoring, получается всё грустно в том случае если мы не знаем сколько будет файлов для мониторинга. тогда мы подключаем 1 файл и мониторим, и уже в этом файле опять добавляем кучу include + monitoring. (1 большой файл очень тяжело и не удобно править)
это всё лишние действия, лишнее время, лишние баги...
это так из разряда хотелок.
вообщем может меня ещё кто-то ещё поддержит, и надеюсь в будущих версиях мы таки увидим данную фичу ;)
ps: ну и конечно-же огромная благодарность за проделанную работу!
from 3proxy.
всё же ещё раз подниму эту тему. ну очень не хватает этого.
готовы отблагодарить донатом, если этот функционал таки появится в новой версии. )
from 3proxy.
Вы просите сделать костыль вместо того, чтобы сделать правильную конфигурацию. Не надо мониторить кучу файлов, надо мониторить один. Система должна быть такая - меняется конфигурацию, потом, когда изменения полностью завершены делаете touch (или перезаписываете) файл для которого установлен мониторинг. При этом совсем не обязательно чтобы там было что-то относящееся к конфигу, там может просто номер версии конфига лежать. И нельзя это делать чаще, чем раз в 2 минуты, т.к. иначе можно переписать файлы, которые в данный момент считываются.
from 3proxy.
Может вместо починки велосипеда костылями проще сделать, например, возможность через веб-интерфейс добавлять/дизейблить юзеров без перезагрузки конфигурации?
from 3proxy.
Ну почему костыль, в большинстве более менее серьезных сервисах есть такая
возможность, там везде костыли? )
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.
Не надо мониторить все файлы ни в коем случае, 3proxy все равно пересчитывает конфигурацию целиком.
from 3proxy.
Можете делать 100500 файлов, но мониторьте один. После любых изменений любого из 100500 файлов - меняйте этот 1 файл или делайте для него touch чтобы время поменялось.
from 3proxy.
мы мониторим 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.
Так вы можете делать точно так же - заливать все файлы, потом делать reolad 3proxy, reload делается по SIGUSR1. Тогда ничего мониторить не надо.
from 3proxy.
да только ещё надо:
добавлять строку в users.list
include /новый конфиг
(от вот этого мы хотим уйти, что-бы мониторился каталог с файлами)
service reload 3proxy
from 3proxy.
что-бы он просто сам генерил список include'ов по каталогу, можно и так сказать. )
хотя наверное проще это запихнуть в service 3proxy reload скрипт )
from 3proxy.
Так можно и в 3proxy.cfg через system вставить команду
from 3proxy.
ага. в ходе беседы пришла новая идея, спасибо. будем пробовать.
но у нас всё же ещё остается проблема с релоадом этих конфигов.
надо знать можно релоадить или сейчас уже происходит перезагрузка.
это как-то можно сделать?
просто в этом случае всё отваливается или недозагружается (
from 3proxy.
Копируйте конфиг в новую папку с номером версии (например, текушим временем), номер версии записывайте в файлик, после того, как конфиг полностью сгенерирован. По этому номеру и генерируйте инклюды. По крону добавьте скрипт, который раз в в 5 минут, скажем, будет проверять что изменился номер версии и перезапускать прокси. Или просто мониторьте файл с номером версии.
from 3proxy.
вот последнее точно костыль.
насколько сложно сделать такую конструкцию:
include /etc/3proxy/users/*.conf
что-бы оно подгружало все файлы по маске *.conf из заданной директории
???
это очень облегчит жизнь )
from 3proxy.
ну и последнее если 1 раз в минуту мониторит файл указанный в monitor.
что будет если он не успеет сделать релоад за минуту, с большим конфигом я думаю это запросто. + за эту минуту опять что-то измениться.
from 3proxy.
Это не костыль, это стандартный прием который используется совместно с тем же паппетом практически везде, где надо поддержать версионность на чем-то с большим количеством файлов, которые должны работать синхронно, например на веб-сайте. Большие сайты всегда так апдейтятся, чтобы избежать проблем в момент заливки - заливается новая версия, потом переключается, только спустя некоторое время удаляется старая.
from 3proxy.
это как раз и есть самый настоящий (стандартный) костыль. во всех более менее современных сервисах, есть такая штука как подгрузка из каталога файлов с маской.
а городить огород и ещё кучу доп скриптов для создания списка инклюдов, - это костыли!!!
ИМХО, удобней конфигурить сервис в каталог которого можно просто подкидывать файлы и делать reload? без танцев с бубном и написания каких то скриптов которые будет давать доп нагрузку, баги и вообще непонятно что. этот функционал должен быть реализован из коробки, а не внешними костылями.
а в большинстве сервисов тех с которыми я работаю, ещё есть и автоподхват изменений, изменил файл и не надо релоадить всю конфигурацию вручную.
ладно спорить можно долго...
from 3proxy.
Спорить не о чем - как прокси узнает, докидал ли ты файлы в каталог и можно пересчитывать конфигурацию - или еще нет и ты закинул только половину? Тем более что ты кидаешь по сети, могут возникнутб сетевые проблемы и даже grace period не спасет.
from 3proxy.
а почему это работает на всех других сервисах? ) я доливаю файлы для openvpn и accel-ppp без перезагрузки сервисов. и всё работает!
nginx - тоже самое, только с reload ручным.
я уже не прошу что-бы оно мониторило. я прошу просто include с маской!
после заливки я сам буду делать релоад конифуграции. мне не сложно сделать скрипт который будет это делать это дело 5 минут. просто было бы очень удобно если бы это было из коробки и не городить огород на 50+ серверах с этими скриптами.
from 3proxy.
ну дело ваше, ушел писать скрпит...
from 3proxy.
по поводу как прокси узнает. смотри в сторону inotify - я это реализовывал на python.
там можно выловить event по которому и перезагружать. всё это есть и работает у меня для других целей.
from 3proxy.
По inotify я узнаю, что ты начал кидать файлы в каталог. Я и без него это узнаю. Как я узнаю, что ты закончил это делать и можно смело пересчитывать конфиг?
from 3proxy.
насколько помню IN_CLOSE event, хотя есть несколько способов.
второй хотя бы по отсутствию этих event'ов какое-то время )
но 1й должен работать, правда у меня немного другая задача была.
from 3proxy.
Ну ты закрыл файл, я начал релоадить конфигурацию, а ты в этот момент открываешь следующий файл в каталоге и начнешь его перезаписывать. Получаем фарш.
from 3proxy.
там если я не ошибаюсь как раз мониторинг каталога.
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.
Мониторинг-то каталога. Но операции открытия каталога и закрытия каталога не бывает. Мониторинг каталога генерирует события связанные с файлами в этом каталоге.
from 3proxy.
угу по доке так и есть.
я это делал давненько, и делал насколько помню так:
- отлавливал все события
- ждал какое-то изменение
- дожидался какое то время простоя т.е. там к примеру 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)
- build docker from Dockerfile.full error HOT 2
- Блокировка/доступ по URL, не доменному имени. HOT 2
- socks5 proxy work for some website , but not for some HOT 3
- How to make IE in windows7/10 work with 3proxy HOT 1
- Пускает без авторизации (socks5) HOT 2
- Не запускается 3proxy с несколькими конфигурационными файлами HOT 8
- Does Socks proxy parent proxy support udp protocol?
- Limiting the number of devices HOT 4
- Вопрос по блок листу HOT 2
- About dnspr HOT 1
- Whitelist + DNS HOT 1
- Difficulty with Proxy Chaining in 3proxy HOT 3
- bandlimout - doesn't work unless TCP buffer is filled HOT 1
- Connection closed when using CURL -v -L method HOT 1
- If creating a TCP map with tcppm to a SOCKS5 proxy server, being them listening in different IPs, there is no UDP connectivity. HOT 4
- Command: 'plugin' failed with code 1, line 7 HOT 2
- 3proxy close tcp HOT 12
- failed to read: /etc/3proxy/private.key HOT 1
- deleted HOT 1
- Blacklist specific url and ip from socks5 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from 3proxy.