EQVPS

HTTPS ile nginx ters proxy nasıl kurulur

Yerel bir portu dinleyen herhangi bir uygulamanın önüne temiz bir alan adı ve otomatik HTTPS koyun. İki yol: Certbot ile nginx veya tek satırda otomatik TLS için Caddy. Adım adım, kopyalanmaya hazır yapılandırmayla.

Çoğu kendi kendine barındırılan uygulama 127.0.0.1:3000 gibi yerel bir portu dinler ve düz HTTP konuşur. Bir ters proxy önde 80/443 portlarında durur, HTTPS'i gerçek bir sertifikayla sonlandırır ve trafiği o yerel porta iletir — size temiz bir https://app.yourdomain.com verir ve tek bir IP arkasında birden çok uygulama çalıştırmanıza izin verir. İşte iki yaygın yol.

Ön koşullar

Seçenek A — Caddy (otomatik HTTPS, tek satır)

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

Hepsi bu — Caddy alan adı için bir Let's Encrypt sertifikası alır ve otomatik yeniler.

Seçenek B — nginx + Certbot

sudo apt install -y nginx certbot python3-certbot-nginx

/etc/nginx/sites-available/app dosyasını oluşturun:

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;
    }
}

Etkinleştirin ve HTTPS ekleyin:

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 yapılandırmayı HTTPS sunacak şekilde düzenler ve otomatik yenilemeyi ayarlar.

Dürüst uyarılar

Sonraki adımlar

Ters proxy, tek bir sunucunun pek çok şeyi sunmasını sağlayan şeydir — tek bir IP arkasında birden çok servisi barındırma sayfasına bakın. Uygulamayı bir konteynerde mi çalıştırıyorsunuz? Docker nasıl kurulur ile başlayın. Uygulamanın kendisinin yeniden başlatmalar ve çökmeler boyunca ayakta kalması için systemd servisi nasıl oluşturulur sayfasına bakın.

SSS

Ters proxy nedir ve neden gerekli?

Uygulamanız genellikle 127.0.0.1:3000 gibi yerel bir portu dinler. Ters proxy önde 80/443 portlarında durur, HTTPS'i sonlandırır ve istekleri o yerel porta iletir. Size temiz bir alan adı, geçerli bir TLS sertifikası ve tek bir IP arkasında birden çok uygulama çalıştırma imkânı verir — üstelik uygulamanız bunların hiçbirini kendisi yapmadan.

nginx mi Caddy mi — hangisini seçmeli?

Caddy en hızlı yol: Let's Encrypt sertifikalarını otomatik alır ve yeniler, çalışan bir HTTPS proxy'si tek satır yapılandırmadır. nginx daha yaygın ve daha esnektir, ama TLS için Certbot eklersiniz. En az uğraşla HTTPS istiyorsanız Caddy'yi kullanın; nginx'i biliyor ya da özelliklerini istiyorsanız nginx'i.

Alan adına ihtiyacım var mı?

Güvenilir bir HTTPS sertifikası için evet — Let's Encrypt sertifikaları çıplak IP'lere değil, alan adlarına verir. Bir A kaydını sunucunuzun IP'sine yönlendirin, DNS yayılmasını bekleyin, ardından proxy o ad için sertifika alabilir.

Hangi portlar açık olmalı?

Gelen 80 ve 443. Port 80 ilk sertifika doğrulaması ve HTTPS'e yönlendirme için kullanılır; 443 şifreli trafiği sunar. İkisini de güvenlik duvarınızda açın (UFW kılavuzuna bakın) ve başka bir şeyin onları zaten kullanmadığından emin olun.

Sertifika verimi neden başarısız oluyor?

Neredeyse her zaman DNS ya da portlar. Alan adının A kaydı bu sunucuya işaret etmeli ve yayılmış olmalı, 80/443 portları erişilebilir olmalı (güvenlik duvarında açık, yukarı akışta engellenmemiş). Bu ikisini düzeltin, verim başarılı olur; Caddy ve Certbot ikisi de yeniden dener.

Yorumlar

Henüz yorum yok. İlk olun.

Bir yorum bırakın

Yorumlar görünmeden önce denetlenir.