Liigu edasi põhisisu juurde

Portide suunamine Veebimajutuse serveris

Kuidas ühendada domeen või aadress oma Node.js (või muu) rakendusega

1. Mis on portide suunamine

Sinu domeeni külastaja jõuab alati kõigepealt Veebimajutuse veebiserverisse (Apache). See tegeleb HTTPS-iga. Kui lisad portide suunamise, edastab veebiserver selle domeeni (või aadressi) päringud sinu rakendusele sisevõrgu kaudu.

Brauser  ──HTTPS──▶  Veebiserver  ──HTTP──▶  Sinu rakendus 10.0.10.128:3000

  • Rakendus ise HTTPS-i ega SSL-sertifikaati ei halda. Rakendus saab päringu tavalise HTTP-na.
  • Suunamine töötab Node.js, Python, PHP ja muude rakenduste puhul, mis kuulavad porti.
  • Rakendust ei pea ega saa kuulata ühelgi muul aadressil kui ELKDATA_APP_IP (sinu rakenduste IP).

2. Enne alustamist

  • Rakendus töötab ja kuulab aadressil ELKDATA_APP_IP ning mingil pordil vahemikus 1025–65535 (nt 3000). Vt PM2 juhendit.
  • Domeen on seotud sinu Veebimajutuse veebiserveriga.

Tähelepanu: Suunamine asendab Apache saidi selle aadressi all. Kui suunad kogu domeeni (tühi aadressi teekond) rakendusele, siis domeenil olev WordPress või muu sait enam selle aadressi all ei avane. Kui tahad mõlemat, kasuta aadressi teekonda (osa 4) või alamdomeeni.

3. Suunamise lisamine

Ava iseteeninduses domeeni haldus → Veebiserver → Portide suunamine. Vorm on kahes osas.

Osa 1. Mis aadressi soovid suunata?

Väli Tähendus
Domeen Rippmenüü. Vali domeen või alamdomeen, mille päringuid suunad.
Aadressi teekond (valikuline) Avaliku aadressi osa, mis suunatakse. Tühi = kogu domeen. /ulesanded = ainult aadressid, mis algavad https://sinudomeen.ee/ulesanded.
Lisa aadressi lõppu kaldkriips Märgi, kui sisestad aadressi teekonna ja rakendus on veebileht (vt osa 5). Valik on saadaval ainult siis, kui teekond on sisestatud.

Osa 2. Kuhu soovid aadressi suunata?

Väli Tähendus
http://10.0.10.128: Sinu rakenduste IP (võib erineda). See on juba välja ees. Sa ei pea seda kirjutama.
Port Port, millel sinu rakendus kuulab. Lubatud 1025–65535. Sama mis rakenduse .env failis (nt 3000).
Rakenduse tee (valikuline) Tee, mille all rakendus päringuid ootab (vt osa 4). Tavaliselt tühi.

Proovi suunamist

Vormi all on jaotis Proovi suunamist. See näitab, kuhu päring tegelikult suunatakse. Näiteks kogu domeeni suunamisel pordile 3000:

Kliendi päring:             https://sinudomeen.ee/
Suunatakse rakendusele:     http://10.0.10.128:3000/

Näpunäide: Kontrolli seda ALATI enne Lisa suunamine vajutamist. Enamik vigu on näha juba siin.

Klõpsa Lisa suunamine. Peab ilmuma teade „Suunamine lisatud". Lisatud suunamised ilmuvad vormi all nimekirja (domeen, aadressi teekond, lõpu kaldkriips, rakenduse tee, port).

Tähelepanu: Oota kuni 5 minutit. Suunamine ei hakka kohe tööle. Selle ajal võid näha vana saiti või 404 viga. See on normaalne.

4. Näited

Eesmärk Aadressi teekond Port Rakenduse tee „Proovi suunamist" peaks näitama
Kogu domeen rakendusele tühi 3000 tühi https://sinudomeen.ee/ → http://10.0.10.128:3000/
Rakendus alamteel, rakenduse marsruudid algavad juurest (/api/todos) /ulesanded 3000 tühi https://sinudomeen.ee/ulesanded/api/todos → …:3000/api/todos
Rakendus alamteel, marsruudid algavad samast teest (/ulesanded/api/todos) /ulesanded 3000 /ulesanded https://sinudomeen.ee/ulesanded/api/todos → …:3000/ulesanded/api/todos

Kuidas valida „Rakenduse tee"

See sõltub sellest, millised aadressid on sinu rakenduse koodis:

Rakenduse kood Aadressi teekond Rakenduse tee Tulemus
app.get('/api/todos') /ulesanded tühi Külastaja avab /ulesanded/api/todos, rakendus saab /api/todos
app.get('/ulesanded/api/todos') /ulesanded /ulesanded Külastaja avab /ulesanded/api/todos, rakendus saab /ulesanded/api/todos

Kui valik on vale, vastab rakendus 404. Kontrolli jaotises „Proovi suunamist", kuhu päring tegelikult jõuab.

5. Lõpu kaldkriips (alamtee puhul)

Veebileht, mis kasutab suhtelisi linke (style.css, api/todos), töötab ainult siis, kui aadress lõpeb kaldkriipsuga. Brauser arvutab suhtelised lingid aadressi viimase kaldkriipsu järgi:

Külastaja avab Brauser küsib style.css aadressilt
https://sinudomeen.ee/ulesanded /style.css (vale: sellist faili rakenduses pole)
https://sinudomeen.ee/ulesanded/ /ulesanded/style.css (õige)
  • Märgi „Lisa aadressi lõppu kaldkriips" veebilehtede puhul (HTML, React, Vue, staatilised failid). Siis lisatakse puuduv kaldkriips automaatselt.
  • Jäta märkimata puhta API puhul, kus brauser ei lae suhtelisi faile.

6. Mida rakendus päringuga kaasa saab

Veebiserver edastab päringu rakendusele tavalise HTTP-na. Meie testis jõudsid rakenduseni muu hulgas päised:

Päis Tähendus
Host ja X-Forwarded-Host Domeen, mille külastaja avas (sinudomeen.ee).
X-Forwarded-For
Külastaja tegelik IP-aadress.
  • Rakenduse ühenduse allikaks (socket.remoteAddress) on veebiserveri sisemine IP (10.0.10.128), mitte külastaja. Külastaja IP saad päisest X-Forwarded-For.
  • Express: lisa app.set('trust proxy', 1), siis annab req.ip külastaja IP.
  • Päist X-Forwarded-Proto veebiserver ei saada. Seetõttu on Expressis req.secure alati false (ka HTTPS-päringu puhul). Ära ehita sellele turvaloogikat (nt „kui pole HTTPS, keeldu"). Kui klient saadab selle päise ise, edastatakse see rakendusele muutmata, seega ei saa seda usaldada.

7. HTTPS ja SSL

SSL-sertifikaat tellitakse ja paigaldatakse iseteeninduses (Veebiserver → SSL sertifikaat) ning HTTPS-ile suunamine seadistatakse jaotises Domeen → Domeeni suunamine (Alamdomeeni puhul valikust Veebiserver → Alamdomeenid). Täpsemad juhised leiad Veebimajutuse SSL-i ja HTTPS-i juhenditest. Portide suunamine töötab samamoodi nii HTTP kui HTTPS puhul.

8. Mitu rakendust ja mitu suunamist

  • Iga rakendus vajab oma porti (nt 3000, 3001, 3002). Pordid peavad jääma vahemikku 1025–65535.
  • Iga port peab olema lisatud suunamisse ja vastama pordile, mida rakendus tegelikult kuulab (.env fail ja suunamine peavad ühtima).
  • Samal domeenil saad suunata erinevaid aadressi teekondi eri rakendustele (nt /ulesanded pordile 3000 ja /blogi pordile 3001).

9. Veaotsing

Mida näed Põhjus Mida teha
502 Bad Gateway Rakendus ei tööta, kuulab vales aadressis või vales pordis pm2 status peab näitama online. Logis peab olema Server listening on 10.0.10.128:<port>. Port peab olema sama mis suunamises.
Vana sait või WordPressi 404 kohe pärast lisamist Suunamine ei ole veel jõudnud kehtima Oota kuni 5 minutit.
Rakenduse oma 404 Aadressi teekond või rakenduse tee on vale Võrdle rakenduse marsruute osaga 4 ja kontrolli „Proovi suunamist".
Leht avaneb ilma stiilide ja skriptideta Alamtee puhul puudub lõpu kaldkriips Märgi „Lisa aadressi lõppu kaldkriips" või kasuta rakenduses õigeid suhtelisi linke.
Domeenil enam vana saiti ei näe Kogu domeen on suunatud rakendusele Kasuta aadressi teekonda või alamdomeeni.
EADDRINUSE logis Port on juba kasutusel Vali teine port ja muuda see nii rakenduses kui suunamises.
https: false või req.secure on false
Veebiserver ei edasta X-Forwarded-Proto päist See on normaalne. Vt osa 6.

Kiire kontroll käsurealt

curl -i https://sinudomeen.ee/api/health

Oodatav: HTTP/2 200 ja X-Powered-By: Express (või muu rakenduse vastus). Kui vastuseks tuleb WordPressi leht, ei ole suunamine veel kehtima hakanud või teekond ei klapi.

10. Kontroll-loend

☐ Rakendus töötab (pm2 status näitab online)

☐ Rakendus kuulab ELKDATA_APP_IP aadressil ja valitud pordil

☐ Domeen ja aadressi teekond on õiged

☐ Port vahemikus 1025–65535 ja sama mis rakenduses

☐ „Proovi suunamist" näitab õiget sihtkohta

☐ Lõpu kaldkriips on märgitud (kui alamtee ja veebileht)

☐ Ootasid kuni 5 minutit

☐ Aadress avaneb brauseris ja staatilised failid laadivad

Vaata ka

➪ PM2 protsessihaldur Veebimajutuse serveris
➪ Node.js rakenduse paigaldamise juhend Veebimajutuse jagatud serverisse

Tähtis küsimus jäi vastuseta? Küsi julgelt otse meie klienditoelt

Me aitame sul kindlasti oma küsimusele see tähtis vastus leida. Ja kui me seda teeme siis võtame kiiresti ühendust!
Võta ühendust
Klienditeenindus
Veebimajutus logo