Ai o aplicație care rulează pe serverul tău pe un port non-standard (de exemplu, interfața web CrushFTP pe portul 8080 sau o aplicație Node.js pe 3000)?
Această procedură îți arată cum să folosești Apache ca intermediar (Reverse Proxy). Apache va prelua cererile de pe domeniul tău curat (portul 80/443) și le va trimite invizibil către aplicația ta din fundal.
🛠️ Cerințe preliminare
- Un server cu Ubuntu 24.04 și Apache deja instalat.
- O aplicație care rulează deja în fundal (ex: CrushFTP pe
http://localhost:8080).
- Un subdomeniu (ex:
ftp.domeniultau.ro) îndreptat din DNS către IP-ul serverului.
Pasul 1: Activarea modulelor Proxy în Apache
Pentru ca Apache să poată redirecționa traficul intern, trebuie să îi activăm modulele speciale de proxy.
Deschide terminalul și rulează:
sudo a2enmod proxy proxy_http headers
sudo systemctl restart apache2
Pasul 2: Crearea fișierului VirtualHost
Vom crea un fișier de configurare dedicat subdomeniului pe care vrei să îl folosești.
sudo nano /etc/apache2/sites-available/reverse-proxy.conf
Pasul 3: Adăugarea regulilor de redirecționare
În editorul Nano, lipește codul de mai jos.
(Atenție: Înlocuiește ftp.domeniultau.ro cu subdomeniul tău real și 8080 cu portul aplicației tale!)
<VirtualHost *:80>
ServerName ftp.domeniultau.ro
# Setări de bază pentru a păstra IP-urile reale ale vizitatorilor
PreserveHost On
ProxyRequests Off
# Aici se întâmplă magia: trimitem traficul către portul 8080 intern
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
# Loguri separate pentru a depista ușor erorile
ErrorLog ${APACHE_LOG_DIR}/proxy_error.log
CustomLog ${APACHE_LOG_DIR}/proxy_access.log combined
</VirtualHost>
Salvează fișierul (Ctrl+O, Enter, Ctrl+X).
Pasul 4: Activarea site-ului și aplicarea setărilor
Acum îi spunem lui Apache să bage în seamă noua noastră configurație și să o aplice.
sudo a2ensite reverse-proxy.conf
sudo systemctl reload apache2
🎉 Pasul 5: Testarea și Securizarea
- Deschide browserul și accesează
http://ftp.domeniultau.ro.
- Ar trebui să vezi direct interfața aplicației tale (ex: CrushFTP), fără să mai scrii portul
:8080!
💡 Pasul următor obligatoriu:
Acum că traficul trece prin Apache pe portul 80, poți instala un certificat SSL gratuit folosind Certbot (exact ca în tutorialul dedicat Let's Encrypt). Rulează pur și simplu sudo certbot --apache, alege subdomeniul din listă, și traficul tău va fi securizat instantaneu cu HTTPS!