Ulu Önder Mustafa Kemal Atatürk'ü aramızdan ayrılışının 88. yılında saygı, minnet ve özlemle anıyoruz.

Nginx ile ters vekil (reverse proxy) ve ücretsiz SSL kurulumu

kaan.yildiz Mid 8 saat önce · 2 görüntülenme

Node.js, Python veya Go ile yazdığın bir uygulama genelde 3000, 8000 gibi bir portta çalışır. Onu doğrudan internete açmak yerine önüne Nginx koymak; SSL, sıkıştırma, statik dosya ve hız sınırı gibi işleri tek yerde çözmeni sağlar.

Aşağıdaki adımlar Ubuntu/Debian içindir; alan adının DNS kaydının sunucuya baktığını varsayıyoruz.

1. Nginx'i kur

sudo apt update
sudo apt install nginx
sudo ufw allow 'Nginx Full'

2. Site yapılandırması

/etc/nginx/sites-available/uygulama dosyasını oluştur:

server {
    listen 80;
    server_name ornek.com www.ornek.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        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;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Upgrade ve Connection satırları WebSocket kullanıyorsan gerekir.

Etkinleştir ve test et:

sudo ln -s /etc/nginx/sites-available/uygulama /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

nginx -t hata veriyorsa yeniden yükleme; önce hatayı düzelt.

3. Let's Encrypt ile ücretsiz SSL

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d ornek.com -d www.ornek.com

Certbot sertifikayı alır, Nginx yapılandırmasına ekler ve HTTP'den HTTPS'e yönlendirmeyi ayarlayabilir. Sertifikalar 90 gün geçerlidir ve kurulumla gelen zamanlayıcı onları otomatik yeniler. Yenilemeyi denemek için:

sudo certbot renew --dry-run

4. Uygulamayı yalnızca yerelde dinlet

Uygulaman 0.0.0.0:3000 yerine 127.0.0.1:3000 adresini dinlesin. Böylece dışarıdan doğrudan porta erişilemez, her istek Nginx üzerinden geçer.

5. Uygulama tarafında dikkat

Nginx arkasında uygulama, isteğin HTTPS ile geldiğini ve gerçek istemci IP'sini X-Forwarded-* başlıklarından öğrenir. Çatının "trusted proxy" ayarını yapmazsan yönlendirme döngüleri, yanlış oluşturulan http:// bağlantıları veya bütün kullanıcıların IP'sinin 127.0.0.1 görünmesi gibi sorunlar çıkar.

Sık görülen hatalar

  • 502 Bad Gateway: Uygulama çalışmıyor ya da farklı portta. curl http://127.0.0.1:3000 ile sunucunun içinden dene.
  • 413 Request Entity Too Large: Dosya yükleme sınırı. client_max_body_size 20M; ekle.
  • 504 Gateway Timeout: Uzun süren istekler. proxy_read_timeout değerini artır ama asıl çözüm işi arka plana almaktır.

Loglar /var/log/nginx/error.log dosyasında; sorun yaşadığında ilk bakılacak yer burası.

0

0 cevap

Henüz cevap yok. İlk cevabı sen yaz.

Cevap yaz

Cevap yazmak için giriş yapmalısın.

Konu bilgisi
  • Açılış10.11.2026
  • Son etkinlik8 saat önce
  • Cevap0
  • Görüntülenme2
  • Beğeni0
Yeni konu aç