NGINX HTTP átirányítás HTTPS-re egyedi porton
Biztos estünk már abba a hibába, hogy ha NGiNX vhostot futtatunk ami SSL tanusítvánnyal van el látva viszont nem az átlagos 443 porton hanem például 8700-as porton futtatjuk akkor a következő jelenséget produkálja az nginx amennyiben nem írjuk manuálisan a domain elé, hogy https://
400 Bad Request
The plain HTTP request was sent to HTTPS port
Ez egy nagyon gyakori probléma és nagyon egyszerű is befoltozni.
Amikor a 8700-as porton HTTP-n próbálunk hozzáférni a webhelyhez, a kérést az NGiNX nem tudja feldolgozni mivel arra számít, hogy a kérés SSL használatával érkezik meg.
Na de most nézzük meg, hogy mi a teendő ilyenkor.
Navigáljunk el a(z) /etc/nginx/sites-enabled
vagy /etc/nginx/http.d
mappába. Rendszertől függ, hogy hol tároljuk a vhost konfigurációs fájljainkat. Ubuntu és Debian alapú rendszereken általában ez a(z) /etc/nginx/sites-enabled
helyen van, viszont Fedora vagy CentOS esetén már a(z) /etc/nginx/http.d
helyen.
Nyissuk meg tetszőleges szerkesztővel azt a konfigurációs fájlt amelyikben a hibát okozó domain konfigurációja található.
A server
részleghez adjuk hozzá a következő sort:error_page 497 https://domain.neved:8700$request_uri;
Valahogy így:
server {
listen 8700 ssl http2;
listen [::]:8700 ssl http2;
server_name domain.neved;
...
error_page 497 https://domain.neved:8700$request_uri;
...
}
Az utolsó lépés újra tölteni az NGiNX-et. Aki egy kicsit is ért hozzá az tudja, hogy a service nginx restart
nem a megfelelő döntés. A megfelelő eljárás ilyen esetben a service nginx reload
mégpedig azért mert a folyamat leállítása előtt az új konfigurációs fájl elemzése megtörténik, és az egész folyamat megszakad, ha bármilyen probléma adódott.
Végszó
Kész vagyunk! Remélem tudtam segíteni és hasznosnak találod ezt a cikkemet! Amennyiben így van kérlek tégy egy megosztást amihez jobb oldalt vagy telefonról az oldal alján találsz gombokat. Ha esetleg problémad akad nyugodtan csatlakozz discord szerveremhez amihez ITT vagy az oldal alján találsz meghívót! ❤️