Οι περισσότερες αυτο-φιλοξενούμενες εφαρμογές ακούν σε μια τοπική θύρα όπως 127.0.0.1:3000 και μιλούν απλό HTTP. Ένας αντίστροφος proxy στέκεται μπροστά στις θύρες 80/443, τερματίζει το HTTPS με ένα πραγματικό πιστοποιητικό και προωθεί την κίνηση σε αυτή την τοπική θύρα — σας δίνει ένα καθαρό https://app.yourdomain.com και σας επιτρέπει να τρέχετε πολλές εφαρμογές πίσω από μία IP. Ορίστε οι δύο συνηθισμένοι δρόμοι.
Προϋποθέσεις
- Ένας τομέας με μια εγγραφή A που δείχνει στην IP του διακομιστή σας (περιμένετε τη διάδοση DNS).
- Οι θύρες 80 και 443 ανοιχτές — δείτε πώς να στήσετε ένα τείχος προστασίας UFW.
- Η εφαρμογή σας τρέχει τοπικά, για παράδειγμα στο
127.0.0.1:3000.
Επιλογή A — Caddy (αυτόματο HTTPS, μία γραμμή)
sudo apt install -y caddy
echo 'app.yourdomain.com { reverse_proxy 127.0.0.1:3000 }' | sudo tee /etc/caddy/Caddyfile
sudo systemctl restart caddy
Αυτό ήταν — το Caddy αποκτά ένα πιστοποιητικό Let's Encrypt για τον τομέα και το ανανεώνει αυτόματα.
Επιλογή B — nginx + Certbot
sudo apt install -y nginx certbot python3-certbot-nginx
Δημιουργήστε το /etc/nginx/sites-available/app:
server {
listen 80;
server_name app.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Ενεργοποιήστε το και προσθέστε HTTPS:
sudo ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d app.yourdomain.com
Το Certbot επεξεργάζεται τη διαμόρφωση για να εξυπηρετεί HTTPS και ρυθμίζει την αυτόματη ανανέωση.
Ειλικρινείς προειδοποιήσεις
- Το DNS και οι θύρες είναι οι συνήθεις αποτυχίες. Η εγγραφή A πρέπει να δείχνει εδώ και να έχει διαδοθεί, και οι 80/443 να είναι προσβάσιμες, αλλιώς η έκδοση πιστοποιητικού αποτυγχάνει. Και τα δύο εργαλεία δοκιμάζουν ξανά μόλις διορθωθεί.
- Εκθέστε μόνο ό,τι σκοπεύετε. Κρατήστε την εφαρμογή δεμένη στο
127.0.0.1ώστε να είναι προσβάσιμη μόνο μέσω του proxy, όχι απευθείας. - Το HTTPS χρειάζεται τομέα, όχι γυμνή IP — το Let's Encrypt εκδίδει για ονόματα.
Επόμενα βήματα
Ο αντίστροφος proxy είναι ακριβώς αυτό που επιτρέπει σε έναν διακομιστή να εξυπηρετεί πολλά πράγματα — δείτε αυτο-φιλοξενία πολλών υπηρεσιών πίσω από μία IP. Τρέχετε την εφαρμογή σε ένα container; Ξεκινήστε με το πώς να εγκαταστήσετε το Docker. Για να επιβιώνει η ίδια η εφαρμογή από επανεκκινήσεις και κρασαρίσματα, δείτε πώς να δημιουργήσετε μια υπηρεσία systemd.
Σχόλια
Δεν υπάρχουν ακόμη σχόλια. Γίνετε ο πρώτος.