🚀 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.jsonirconf.jsonfailai 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 nurodydamicertFileirkeyFile. ⚙️ - 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.jsonarba 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.jsonirconf.jsonkeitimus 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:
JeiuseHTTPSyra true ir rankiniai sertifikatai nenustatyti, sertifikatai iš Let's Encrypt yra prašomi ir atnaujinami automatiškai kiekvienam domenui.- Nauji domenai
redirects.jsonfaile yra aptinkami ir sertifikatai išduodami be proxy perkrovimo.
- Nauji domenai
- Rankiniai sertifikatai:
Jei nustatyticertFileirkeyFile, 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.jsonarba naudojant-langparametrą.
- 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-servicevė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.jsonir 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).