Programu nyingi za kujiendesha husikiliza kwenye lango la ndani kama 127.0.0.1:3000 na huzungumza HTTP ya kawaida. Reverse proxy husimama mbele kwenye lango 80/443, humaliza HTTPS kwa cheti halisi, na hupeleka trafiki kwenye lango hilo la ndani — hukupa https://app.yourdomain.com safi na hukuruhusu kuendesha programu nyingi nyuma ya IP moja. Hizi hapa njia mbili za kawaida.
Mahitaji ya awali
- Kikoa chenye rekodi ya A inayoelekeza kwenye IP ya seva yako (subiri usambazaji wa DNS).
- Malango 80 na 443 wazi — ona jinsi ya kusanidi ngome ya UFW.
- Programu yako inaendesha ndani, kwa mfano kwenye
127.0.0.1:3000.
Chaguo A — Caddy (HTTPS otomatiki, mstari mmoja)
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
Ndiyo hivyo — Caddy hupata cheti cha Let's Encrypt kwa kikoa na kukihuisha kiotomatiki.
Chaguo B — nginx + Certbot
sudo apt install -y nginx certbot python3-certbot-nginx
Tengeneza /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;
}
}
Iwezeshe na ongeza 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 huhariri usanidi ili kuhudumia HTTPS na kuweka uhuishaji otomatiki.
Maonyo ya kweli
- DNS na malango ndiyo hitilafu za kawaida. Rekodi ya A lazima ielekeze hapa na iwe imesambaa, na 80/443 ziwe zinafikika, la sivyo utoaji wa cheti utashindwa. Zana zote mbili hujaribu tena mara tu hilo linaporekebishwa.
- Onyesha tu unachokusudia. Weka programu ikiwa imefungwa kwenye
127.0.0.1ili ifikike tu kupitia proxy, si moja kwa moja. - HTTPS inahitaji kikoa, si IP tupu — Let's Encrypt hutoa kwa majina.
Hatua zinazofuata
Reverse proxy ndiyo kinachoruhusu seva moja kuhudumia mambo mengi — ona kujiendeshia huduma nyingi nyuma ya IP moja. Unaendesha programu ndani ya kontena? Anza na jinsi ya kusakinisha Docker. Ili programu yenyewe ibaki hai baada ya kuanzishwa upya na kuanguka, ona jinsi ya kuunda huduma ya systemd.
Maoni
Bado hakuna maoni. Kuwa wa kwanza.