Nginx Sunucusunun Birden Fazla Bağlantı Noktasında Dinleme Yapması Nasıl Sağlanır
Nginx, birden fazla bağlantı noktasını dinleyecek şekilde yapılandırılabilen çok yönlü bir web sunucusu ve ters proxy’dir, bu da onu aynı sunucudan farklı web siteleri, uygulamalar veya hizmetler sunmak için uygun hale getirir. Nginx’i birden fazla bağlantı noktasını dinleyecek şekilde yapılandırmak, farklı bağlantı noktalarında farklı içerik sunmak veya HTTP (bağlantı noktası 80) ve HTTPS (bağlantı noktası 443) gibi hizmetleri desteklemek için yararlı olabilir. Bu kılavuz size Nginx’i birden fazla bağlantı noktasını dinleyecek şekilde nasıl yapılandıracağınızı gösterecektir.
Ön Koşullar
- Nginx’in kurulu ve çalışır durumda olduğu bir sunucu.
- Nginx yapılandırma dosyalarını değiştirmek için root veya sudo erişimi.
- Nginx yapılandırma dosyalarının (nginx.conf ve siteye özgü yapılandırma dosyaları) temel düzeyde anlaşılması.
Temel Nginx Yapılandırmasına Genel Bakış
Nginx’in yapılandırma dosyaları Linux dağıtımına bağlı olarak genellikle /etc/nginx/nginx.conf adresinde veya belirli site yapılandırmaları için /etc/nginx/sites-available/ adresinde bulunur. Bir portu dinlemek için ana yönerge, Nginx’in dinlemesi gereken IP adresini ve portu belirten listen yönergesidir.
Adım 1: Nginx Yapılandırma Dosyasını Açın
Nginx’i birden fazla bağlantı noktasını dinleyecek şekilde yapılandırmak için Nginx yapılandırma dosyasını düzenlemeniz gerekir. Tercih ettiğiniz metin düzenleyicisini kullanarak dosyayı açın:
sudo nano /etc/nginx/nginx.conf
Ya da belirli bir site yapılandırmasını düzenliyorsanız:
sudo nano /etc/nginx/sites-available/example.conf
Adım 2: Birden Fazla Dinleme Yönergesi Ekleme
Nginx’in birden fazla portu dinlemesini sağlamak için, bir sunucu bloğu içine birden fazla listen yönergesi ekleyebilirsiniz. İşte 80 ve 8080 bağlantı noktalarını dinleyen bir sunucu bloğu örneği:
server {
80'i dinle;
dinle 8080;
server_name example.com;
root /var/www/html;
index index.html;
konum / {
try_files $uri $uri/ =404;
}
}
Bu yapılandırmada:
- listen 80; Nginx’e 80 numaralı bağlantı noktasındaki HTTP isteklerini dinlemesi talimatını verir.
- listen 8080; Nginx’e 8080 numaralı bağlantı noktasındaki HTTP isteklerini dinlemesi talimatını verir.
Bu, http://example.com:80 ve http://example.com:8080 adreslerine yapılan isteklerin her ikisinin de bu sunucu bloğu tarafından ele alınacağı anlamına gelir.
Adım 3: HTTPS’yi Birden Fazla Bağlantı Noktası ile Yapılandırma
HTTPS’yi farklı bir bağlantı noktasında (örneğin, 8443) etkinleştirmek istiyorsanız, bunu şu şekilde yapılandırabilirsiniz:
sunucu {
443 ssl dinle;
dinle 8443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Bu yapılandırmada:
- listen 443 ssl; Nginx’in HTTPS isteklerini varsayılan 443 numaralı bağlantı noktasında dinlemesini sağlar.
- listen 8443 ssl; Nginx’in HTTPS isteklerini 8443 numaralı bağlantı noktasında dinlemesini sağlar.
- SSL sertifikası ve anahtar yolları (ssl_certificate ve ssl_certificate_key) HTTPS’yi etkinleştirmek için kullanılır.
Adım 4: Yapılandırmanın Doğrulanması
Değişiklikleri yaptıktan sonra, değişiklikleri uygulamadan önce Nginx yapılandırmasını sözdizimi hatalarına karşı doğrulamak çok önemlidir. Koş:
sudo nginx -t
Çıktı sözdiziminin tamam olduğunu söylüyorsa yapılandırma doğrudur.
Adım 5: Nginx’i Yeniden Başlatın
Değişiklikleri uygulamak için Nginx’i yeniden başlatın:
sudo systemctl nginx'i yeniden başlat
Veya sisteminiz servis kullanıyorsa:
sudo service nginx yeniden başlat
Adım 6: Yapılandırmanın Test Edilmesi
Nginx’in birden fazla bağlantı noktasını doğru şekilde dinlediğini doğrulamak için:
- Dinleme Portlarını Kontrol Edin: Nginx’in belirtilen portları dinlediğini doğrulamak için netstat veya ss kullanın:
sudo netstat -tuln | grep nginx
veya:sudo ss -tuln | grep nginx
Bu, Nginx’in dinlediği bağlantı noktalarının bir listesini gösterecektir. 80, 8080, 443 ve 8443 numaralı bağlantı noktaları için girişler görmelisiniz. - Sunucuya Erişin: Web tarayıcınızı açın ve farklı portları kullanarak sunucuya erişmeyi deneyin:
- http://example.com
- http://example.com:8080
- https://example.com
- https://example.com:8443
Yapılandırma doğru yapıldıysa aynı içeriğin sunulduğunu görmelisiniz.
Gelişmiş: Farklı Bağlantı Noktaları için Farklı İçerik Ayarlama
Bağlantı noktasına bağlı olarak sunulacak farklı içerikler yapılandırabilirsiniz. Örneğin, her bağlantı noktası için farklı kök dizinleri sunmak:
sunucu {
dinle 80;
server_name example.com;
root /var/www/html80;
index index.html;location / {
try_files $uri $uri/ =404;
}
}
sunucu {
dinle 8080;
server_name example.com;
root /var/www/html8080;
index index.html;location / {
try_files $uri $uri/ =404;
}
}
Bu örnekte:
- Http://example.com (port 80) adresine yapılan istekler /var/www/html80 adresinden içerik sunacaktır.
- Http://example.com:8080 adresine yapılan talepler /var/www/html8080 adresinden içerik sunacaktır.
Sonuç
Nginx’i birden fazla bağlantı noktasını dinleyecek şekilde yapılandırmak, farklı hizmetler sunmanıza, özel kurulumları desteklemenize veya ağ mimarinizde esneklik sağlamanıza olanak tanır. Nginx’in birden fazla HTTP ve HTTPS bağlantı noktasını işlemesine veya farklı bağlantı noktalarını farklı içeriklere yönlendirmesine ihtiyacınız olsun, Nginx’in listen yönergesi kurulumu kolaylaştırır. Yapılandırmalarınızı doğruladığınızdan, Nginx’i yeniden başlattığınızdan ve her şeyin beklendiği gibi çalıştığından emin olmak için her bağlantı noktasını test ettiğinizden emin olun.