🚀 ProxiNet
ProxiNet yra modernus, dinamiškas ir lengvas atvirkštinis proxy serveris HTTP ir HTTPS. Jis palaiko automatinį sertifikatų valdymą, realaus laiko konfigūracijos perkrovimą, apkrovos balansavimą su svoriais, WebSocket proxyavimą, daugiakalbį žurnalavimą ir gali būti lengvai paleidžiamas kaip Linux systemd paslauga.
🧰 Funkcijos
- Dinaminė konfigūracija:
Dinaminiairedirects.json
irconf.json
failai atnaujinami jų veikimo metu automatiškai, be proxy perkrovimo. ✅ - HTTP ir HTTPS palaikymas:
Palaiko abu protokolus, automatiškai peradresuoja HTTP↔HTTPS pagal konfigūraciją. ⚖️ - Automatiniai TLS sertifikatai:
Naudoja Let's Encrypt (autocert) domenams, kuriuoseuseHTTPS: true
, kai nenaudojami rankiniai sertifikatai. 🔒 - Rankiniai sertifikatai:
Naudokite savo sertifikatus nurodydamicertFile
irkeyFile
. ⚙️ - Apkrovos balansavimas:
Palaiko kelis backend tikslus per maršrutą, su svorių balansavimu (weighted round-robin). ⚖️ - WebSocket proxy'avimas:
Pilnai palaiko WebSocket ryšius. 🔌 - Upstream bazinis kelias (neprivalomas):
Įkelkite programas, veikiančias po potikeliu backend’e (pavyzdžiui CouchDB/_utils
) jūsų domeno šaknies lygiu, nekeitdami kliento URL. NustatykiteupstreamBasePath
, ir užklausos kaiphttps://example.com/
bus proxijuojamos įhttp://backend/_utils/
. ⬆️ - Daugiakalbis žurnalavimas:
Žurnalai ir klaidos verčiami į kelias kalbas (anglų, lietuvių, lenkų, ispanų, vokiečių) ir kalba gali būti keičiama vykdymo metu. 🌐 - Systemd integracija:
Gali automatiškai sugeneruoti ir įgalinti Linux systemd paslaugą. ⚙️ - Karšto perkrovimo veikimas:
Pridėti, pašalinti arba keisti domenus, tikslus ar sertifikatusredirects.json
, o pakeitimai įsigalioja per kelias sekundes. ⚡
🧩 Minimalus pavyzdys
Čia yra minimalus redirects.json
pavyzdys vienam domenui, be svorių, ir su vienu backend tikslu:
[
{
"host": "example.com",
"path": "",
"targets": [
"http://localhost:8080"
]
}
]
🔒 Minimalus pavyzdys su HTTPS
Čia minimalus redirects.json
pavyzdys vienam domenui su automatiniais HTTPS sertifikatais (Let's Encrypt), be svorių, ir vienu backend tikslu:
[
{
"host": "yourdomain.com",
"path": "",
"targets": [
"http://localhost:8080"
],
"useHTTPS": true
]
]
Kaip naudoti:
- Pakeiskite
"yourdomain.com"
į tikrąjį domeną (turi nukreipti į jūsų serverio IP). - Įsitikinkite, kad portas 80 ir 443 atviri ir nėra užblokuoti užkardos.
- Paleiskite ProxiNet be jokios vėliavos; kalba bus automatiškai parinkta iš
conf.json
arba numatyta kaip anglų:./proxinet
- Galite nurodyti kalbą su vėliava:
./proxinet -lang=lt
- ProxiNet automatiškai gaus ir atnaujins nemokamą HTTPS sertifikatą jūsų domenui.
Nėra svorių ar papildomų nustatymų reikalinga šiam minimaliam nustatymui. Pakanka domeno, kelio ir taikinio.
🧭 Kaip tai veikia
- Dinaminėperkrova:
Proxoras stebiredirects.json
irconf.json
keitimus kas 5 sekundes.- Jei redaguojate šiuos failus (pridėkite/pašalinkite domenus, keiskite tikslus, keiskite kalbą), proxy automatiškai juos persikrauna ir realiuoju laiku taiko pakeitimus.
- Apkrovos balansavimas:
Kiekvienam maršrutui gali būti keli tikslai ir svoriai.- Užklausos skirstomos pagal svorių round-robin.
- WebSocket palaikymas:
WebSocket užklausos aptiktos ir nukreiptos į atitinkamą backend. - Automatiniai sertifikatai:
JeiuseHTTPS
yra true ir rankiniai sertifikatai nenustatyti, sertifikatai iš Let's Encrypt yra prašomi ir atnaujinami automatiškai kiekvienam domenui.- Nauji domenai
redirects.json
faile yra aptinkami ir sertifikatai išduodami be proxy perkrovimo.
- Nauji domenai
- Rankiniai sertifikatai:
Jei nustatyticertFile
irkeyFile
, tie sertifikatai naudojami domenui. - HTTP↔HTTPS peradresavimas:
Jei maršrutas turiuseHTTPS: true
, HTTP užklausos rašomos į HTTPS ir atvirkščiai. - Daugiakalbė žurnalavimas:
Visos žinutės ir klaidos išverčiamos.- Kalbą keisti galima vykdymo metu redaguojant
conf.json
arba naudojant-lang
parametrą.
- Kalbą keisti galima vykdymo metu redaguojant
🚀 Išplėstinis
- Bepertraukiamas konfigūracijos perkrovimas:
Galima atnaujinti backendus, pridėti/pašalinti domenus, arba keisti HTTPS nustatymus gyvai. - Systemd integracija:
Naudokite-service
vėliavą norint sugeneruoti ir įgalinti systemd paslaugą. - Windows OS serviso integracija.
- Minimalus resursų naudojimas:
Failų stebėjimas yra efektyvus ir neturi įtakos našumui.
🔒 Pavyzdys: Kaip gyvai pridėti naują HTTPS domeną
- Redaguokite
redirects.json
ir pridėkite naują įrašą su host: newdomain.com ir useHTTPS: true. - Išsaugokite failą.
- ProxiNet pastebės pakeitimą, persikraus ir automatiškai išduos sertifikatą
newdomain.com
(nebūtina perkrauti).