Regimanto Sensoriai

Elektronika, mikrovaldikliai, automatikos projektai ir programavimas – viskas, kas įkvepia kurti ir tobulėti.

ProxiNet

2025-08-24 17:36

🚀 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:
    Dinaminiai redirects.json ir conf.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, kuriuose useHTTPS: true, kai nenaudojami rankiniai sertifikatai. 🔒
  • Rankiniai sertifikatai:
    Naudokite savo sertifikatus nurodydami certFile ir keyFile. ⚙️
  • 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. Nustatykite upstreamBasePath, ir užklausos kaip https://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 sertifikatus redirects.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:

  1. Pakeiskite "yourdomain.com" į tikrąjį domeną (turi nukreipti į jūsų serverio IP).
  2. Įsitikinkite, kad portas 80 ir 443 atviri ir nėra užblokuoti užkardos.
  3. Paleiskite ProxiNet be jokios vėliavos; kalba bus automatiškai parinkta iš conf.json arba numatyta kaip anglų:
    ./proxinet
    
  4. Galite nurodyti kalbą su vėliava:
    ./proxinet -lang=lt
    
  5. 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 stebi redirects.json ir conf.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:
    Jei useHTTPS 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.
  • Rankiniai sertifikatai:
    Jei nustatyti certFile ir keyFile, tie sertifikatai naudojami domenui.
  • HTTP↔HTTPS peradresavimas:
    Jei maršrutas turi useHTTPS: 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ą.

🚀 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ą

  1. Redaguokite redirects.json ir pridėkite naują įrašą su host: newdomain.com ir useHTTPS: true.
  2. Išsaugokite failą.
  3. ProxiNet pastebės pakeitimą, persikraus ir automatiškai išduos sertifikatą newdomain.com (nebūtina perkrauti).

🔗 Parsisiuntimas

Parsisiuntimas iš Github

Lankytojai: 0