Nginx’i HTTP/2 Desteği ile Ubuntu 16.04 Üzerine Kurulum Rehberi
İnternet dünyasında web sitelerinin hızı ve performansı, kullanıcı deneyimi ve arama motoru optimizasyonu (SEO) açısından kritik bir öneme sahiptir. Bu bağlamda, HTTP/2 protokolü, web trafiğini daha verimli hale getirerek önemli performans iyileştirmeleri sunar. Nginx ise, yüksek performanslı, kararlı ve kaynak dostu yapısıyla modern web sunucuları arasında popüler bir tercihtir. Bu makalede, Ubuntu 16.04 işletim sistemi üzerinde Nginx web sunucusunu HTTP/2 desteğiyle nasıl kuracağınızı ve yapılandıracağınızı adım adım detaylı bir şekilde inceleyeceğiz. Ubuntu 16.04, uzun süreli destek (LTS) sunan eski bir sürüm olsa da, birçok sunucuda hala kullanılmaktadır ve bu yapılandırmanın nasıl yapılacağını anlamak önemlidir.
HTTP/2 ve Nginx’in Önemi
HTTP/2, Hypertext Transfer Protocol’ün ikinci büyük sürümüdür ve HTTP/1.1’in bazı temel sınırlamalarını aşmak için tasarlanmıştır. Temel amacı, web sayfalarının yüklenme sürelerini azaltarak kullanıcı deneyimini iyileştirmektir. HTTP/2’nin getirdiği başlıca yenilikler şunlardır:
* Çoklama (Multiplexing): HTTP/1.1’de her istek için ayrı bir TCP bağlantısı kurulması gerekirken, HTTP/2 tek bir TCP bağlantısı üzerinden birden fazla eşzamanlı isteği ve yanıtı yönetebilir. Bu, bağlantı sayısını azaltarak performansı artırır.
* Sunucu İtme (Server Push): Sunucu, tarayıcının henüz istemediği kaynakları (CSS, JavaScript dosyaları gibi) tahmin edip önceden gönderebilir. Bu, tarayıcının ek isteklerde bulunma ihtiyacını ortadan kaldırır.
* Başlık Sıkıştırma (Header Compression): HTTP başlıkları, HPACK sıkıştırma algoritması kullanılarak sıkıştırılır, bu da bant genişliği kullanımını azaltır.
* İkili Çerçeveleme (Binary Framing): HTTP/2, metin tabanlı HTTP/1.1’in aksine ikili bir protokoldür. Bu, ayrıştırmayı daha verimli ve hataya daha az eğilimli hale getirir.
Nginx ise, bu performans iyileştirmelerini sunmak için ideal bir platformdur. Özellikle statik içerik sunumu ve ters proxy (reverse proxy) görevlerinde üstün performans gösterir. Nginx’in modüler yapısı ve düşük kaynak tüketimi, onu yoğun trafikli web siteleri için tercih edilen bir seçenek haline getirir. HTTP/2 desteği, Nginx 1.9.5 sürümünden itibaren mevcuttur ve Ubuntu 16.04’ün varsayılan depolarında gelen Nginx sürümü (genellikle 1.10.x) bu desteği içerir. HTTP/2, pratik olarak her zaman SSL/TLS ile birlikte kullanıldığından, bu kurulum rehberi aynı zamanda Nginx üzerinde SSL/TLS yapılandırmasını da kapsayacaktır.
Ön Koşullar
Bu rehbere başlamadan önce aşağıdaki ön koşulların yerine getirildiğinden emin olun:
* Ubuntu 16.04 Sunucusu: Temiz bir Ubuntu 16.04 sunucusu (VPS veya fiziksel sunucu).
* Sudo Yetkileri: Sudo yetkilerine sahip, root olmayan bir kullanıcı hesabı. Güvenlik nedeniyle root kullanıcısı ile doğrudan işlem yapmaktan kaçınılmalıdır.
* Alan Adı (Domain Name): Sunucunuzla ilişkilendirilmiş, DNS kayıtları doğru şekilde yapılandırılmış bir alan adı. Örneğin, ornekalanadi.com.
* SSL/TLS Sertifikası: HTTP/2’nin çoğu tarayıcı tarafından kabul edilmesi için SSL/TLS sertifikası gereklidir. Bu rehberde, ücretsiz ve otomatik bir sertifika sağlayan Let’s Encrypt’i kullanacağız.
Nginx Kurulumu
İlk adım, Nginx web sunucusunu Ubuntu 16.04 sunucunuza kurmaktır.
Sistem Paketlerini Güncelleme
Kuruluma başlamadan önce, sistemdeki paket listesini güncellemek ve mevcut paketleri yükseltmek iyi bir uygulamadır:
sudo apt update
sudo apt upgrade
Nginx Paketini Kurma
Güncelleme işleminden sonra Nginx’i kurabiliriz:
sudo apt install nginx
Kurulum tamamlandıktan sonra, Nginx servisi otomatik olarak başlayacaktır. Durumunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
systemctl status nginx
Çıktıda active (running) ifadesini görmelisiniz. Eğer Nginx çalışmıyorsa, sudo systemctl start nginx komutuyla başlatabilirsiniz.
Güvenlik Duvarını Yapılandırma (UFW)
Ubuntu sunucularında varsayılan olarak gelen UFW (Uncomplicated Firewall) güvenlik duvarını yapılandırmanız gerekebilir. Nginx, UFW ile entegre olacak şekilde bazı profil tanımlamaları yapar.
Mevcut uygulama profillerini listelemek için:
sudo ufw app list
Bu komutun çıktısı Nginx ile ilgili şu profilleri içerecektir:
* Nginx HTTP: Yalnızca 80 portu (HTTP) üzerinden gelen trafiğe izin verir.
* Nginx HTTPS: Yalnızca 443 portu (HTTPS) üzerinden gelen trafiğe izin verir.
* Nginx Full: Hem 80 (HTTP) hem de 443 (HTTPS) portları üzerinden gelen trafiğe izin verir.
HTTP/2’yi SSL ile kullanacağımız ve tüm trafiği HTTPS’ye yönlendireceğimiz için Nginx Full profilini etkinleştirmek en uygunudur. Ancak, Let’s Encrypt sertifikasını alırken geçici olarak Nginx HTTP‘ye ihtiyacımız olabilir veya sadece Nginx Full açıp otomatik yönlendirmeyi daha sonra yapılandırabiliriz. Şimdilik Nginx Full‘u açalım:
sudo ufw allow 'Nginx Full'
Ardından, UFW’nin etkin olduğundan emin olun:
sudo ufw enable
Bu komutun ardından bir onay istenecektir. y yazıp Enter tuşuna basın. Güvenlik duvarının durumunu kontrol etmek için:
sudo ufw status
Çıktıda 80 ve 443 portlarının Nginx tarafından izin verildiğini görmelisiniz. Artık tarayıcınızdan sunucunuzun IP adresine giderek varsayılan Nginx karşılama sayfasını görebilirsiniz.
SSL/TLS Sertifikası Edinme
HTTP/2’nin modern tarayıcılar tarafından kullanılabilmesi için SSL/TLS sertifikası zorunludur. Bu bölümde, Let’s Encrypt ile ücretsiz bir sertifika almayı ve Nginx ile kullanmayı ele alacağız.
Let’s Encrypt ve Certbot Kurulumu
Let’s Encrypt, Certbot aracı aracılığıyla kolayca sertifika almanızı sağlar. Ubuntu 16.04 için Certbot’u PPA (Personal Package Archive) üzerinden kurmak en iyi yöntemdir.
Öncelikle PPA deposunu ekleyin:
sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
Ardından Certbot’un Nginx eklentisini kurun:
sudo apt install python-certbot-nginx
Nginx ile Sertifika Alma
Certbot, Nginx yapılandırmanızı otomatik olarak algılayıp düzenleyebilir ve sertifikayı kurabilir. Sertifika almak için aşağıdaki komutu kullanın:
sudo certbot --nginx -d ornekalanadi.com -d www.ornekalanadi.com
Bu komutta ornekalanadi.com ve www.ornekalanadi.com yerine kendi alan adlarınızı yazmalısınız.
Certbot, sertifika alma sürecinde size bazı sorular soracaktır:
1. E-posta Adresi: Bildirimler ve kayıp anahtar kurtarma için bir e-posta adresi girin.
2. Hizmet Şartları: Let’s Encrypt hizmet şartlarını kabul etmeniz istenecektir. A tuşuna basarak kabul edin.
3. Paylaşım İsteği: EFF (Electronic Frontier Foundation) ile e-posta adresinizi paylaşma isteği. Y veya N seçeneğini tercih edebilirsiniz.
4. HTTP’den HTTPS’ye Yönlendirme: Certbot, HTTP trafiğini otomatik olarak HTTPS’ye yönlendirip yönlendirmeyeceğinizi soracaktır. 2: Redirect seçeneğini seçmeniz önerilir. Bu, Nginx yapılandırmanıza otomatik olarak bir yönlendirme ekleyecektir.
Tüm adımları tamamladıktan sonra, Certbot sertifikanızı başarıyla kuracak ve Nginx yapılandırmanızı güncelleyecektir. Çıktıda sertifikanızın başarıyla alındığını ve ne zaman sona ereceğini belirten bir mesaj görmelisiniz.
Sertifika Otomatik Yenilemesini Test Etme
Let’s Encrypt sertifikaları 90 gün geçerlidir. Certbot paketi, sertifikaları otomatik olarak yenilemek için bir cron job veya systemd zamanlayıcı kurar. Bu yenileme mekanizmasının çalıştığından emin olmak için aşağıdaki komutu kullanarak yenileme işlemini simüle edebilirsiniz:
sudo certbot renew --dry-run
Eğer bu komut herhangi bir hata vermeden çalışırsa, sertifikalarınızın otomatik olarak yenileneceği anlamına gelir.
Nginx Yapılandırmasını HTTP/2 İçin Hazırlama
Certbot, Nginx yapılandırmanızı temel SSL ayarlarıyla güncelledi, ancak HTTP/2’yi tam olarak etkinleştirmek ve bazı güvenlik iyileştirmelerini eklemek için manuel düzenlemeler yapmamız gerekecek.
Sunucu Bloğu Dosyasını Düzenleme
Certbot, genellikle /etc/nginx/sites-available/your_domain adında bir yapılandırma dosyası oluşturur. Bu dosyayı düzenleyelim:
sudo nano /etc/nginx/sites-available/ornekalanadi.com
Dosyanın içeriği aşağıdaki gibi görünmelidir (sertifika yolları ve alan adları sizin durumunuza göre farklılık gösterecektir):
server {
listen 80;
listen [::]:80;
server_name ornekalanadi.com www.ornekalanadi.com;
return 301 https://$host$request_uri; # Certbot tarafından eklenen yönlendirme
}
server {
listen 443 ssl; # Burayı değiştireceğiz
listen [::]:443 ssl; # Burayı değiştireceğiz
server_name ornekalanadi.com www.ornekalanadi.com;
ssl_certificate /etc/letsencrypt/live/ornekalanadi.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ornekalanadi.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf; # Certbot tarafından eklenen ek ayarlar
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # Certbot tarafından eklenen DH parametreleri
root /var/www/html; # Web sitenizin kök dizini
index index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
}
HTTP/2 ve Güvenlik Ayarlarını Ekleme
Şimdi server bloğunu HTTP/2 desteği ve ek güvenlik iyileştirmeleriyle güncelleyelim. Özellikle listen yönergelerine http2 anahtar kelimesini eklememiz gerekiyor. Ayrıca modern SSL/TLS protokollerini ve güvenli şifreleri belirleyeceğiz.
Güncellenmiş server bloğu aşağıdaki gibi görünecektir:
server {
listen 80;
listen [::]:80;
server_name ornekalanadi.com www.ornekalanadi.com;
return 301 https://$host$request_uri;
}
server {
# HTTP/2 desteğini etkinleştirmek için "http2" ekleyin
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name ornekalanadi.com www.ornekalanadi.com;
# SSL Sertifikası Yolları (Certbot tarafından otomatik olarak ayarlanır)
ssl_certificate /etc/letsencrypt/live/ornekalanadi.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ornekalanadi.com/privkey.pem;
# Certbot tarafından sağlanan SSL ayarlarını dahil et (güvenli protokoller, şifreler vb.)
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# Ek SSL/TLS Güvenlik ve Performans Ayarları (isteğe bağlı ama önerilir)
# Ubuntu 16.04'teki Nginx sürümü (genellikle 1.10.x) TLSv1.3 desteğine sahip olmayabilir.
# Bu durumda TLSv1.3'ü kaldırmanız gerekebilir.
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1h;
ssl_session_tickets off; # Güvenlik için kapatılması önerilir
# HSTS (HTTP Strict Transport Security) başlığı
# Tarayıcılara sitenize her zaman HTTPS üzerinden erişmelerini söyler
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
# Ek Güvenlik Başlıkları (isteğe bağlı)
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
add_header Referrer-Policy "no-referrer-when-downgrade";
# Web sitenizin kök dizini ve varsayılan dosyalar
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
}
Önemli Not: Ubuntu 16.04’ün varsayılan depolarında gelen Nginx 1.10.x sürümü genellikle TLSv1.3 desteği ile gelmez. Eğer ssl_protocols TLSv1.2 TLSv1.3; satırı Nginx’i başlatırken hataya neden olursa, TLSv1.3 kısmını kaldırmanız ve sadece ssl_protocols TLSv1.2; olarak bırakmanız gerekebilir. Nginx’in daha yeni sürümleri TLSv1.3 desteği sunar, ancak 16.04’teki varsayılan sürüm için bu bir sınırlama olabilir.
include /etc/letsencrypt/options-ssl-nginx.conf; dosyası zaten güvenli SSL ayarları içerir, ancak yukarıdaki gibi ek yönergelerle bu ayarları daha da özelleştirebilirsiniz. ssl_dhparam dosyası, Certbot tarafından Diffie-Hellman parametreleri için oluşturulur ve ileriye dönük gizliliği (Perfect Forward Secrecy) sağlar.
Değişiklikleri kaydetmek için CTRL+X, ardından Y ve Enter tuşlarına basın.
Nginx Yapılandırmasını Etkinleştirme ve Test Etme
Yapılandırma dosyasını düzenledikten sonra, değişiklikleri etkinleştirmek için Nginx’i yeniden başlatmanız gerekir.
Yapılandırmayı Test Etme
Nginx yapılandırmanızda herhangi bir hata olup olmadığını kontrol etmek için aşağıdaki komutu kullanın:
sudo nginx -t
Eğer her şey yolundaysa, syntax is ok ve test is successful mesajlarını görmelisiniz. Herhangi bir hata durumunda, belirtilen satır numarasını kontrol ederek hatayı düzeltmeniz gerekir.
Nginx’i Yeniden Başlatma
Yapılandırma testinden sonra, değişiklikleri uygulamak için Nginx servisini yeniden yükleyin veya yeniden başlatın:
sudo systemctl reload nginx
veya
sudo systemctl restart nginx
reload komutu, Nginx’i kesintisiz hizmet vermeye devam ederken yapılandırmayı yeniden yükler. restart komutu ise Nginx’i tamamen durdurup yeniden başlatır, bu da kısa bir kesintiye neden olabilir. Genellikle reload yeterlidir.
HTTP/2 Desteğini Doğrulama
Nginx’i HTTP/2 ile başarıyla yapılandırdıktan sonra, bu desteğin gerçekten etkin olup olmadığını doğrulamak önemlidir.
Tarayıcı Geliştirici Araçları ile Kontrol
Web sitenizi modern bir tarayıcıda (Chrome, Firefox, Edge) açın. Geliştirici araçlarını açın (F12 veya sağ tıklayıp “İncele”). “Network” (Ağ) sekmesine gidin. Sayfayı yeniden yükleyin. Kaynak listesinde, “Protocol” (Protokol) sütununda h2 (HTTP/2) ifadesini görmelisiniz. Eğer http/1.1 görüyorsanız, yapılandırmanızda bir sorun olabilir.
Online Araçlar ile Kontrol
Çeşitli online araçlar, web sitenizin HTTP/2 desteğini ve SSL/TLS yapılandırmasının güvenliğini kontrol etmenize olanak tanır:
* KeyCDN HTTP/2 Test: https://tools.keycdn.com/http2-test adresine giderek alan adınızı girin.
* SSL Labs SSL Server Test: https://www.ssllabs.com/ssltest/ adresine giderek alan adınızı girin. Bu araç, SSL/TLS yapılandırmanızın güvenliğini derinlemesine analiz eder ve bir derecelendirme (A+, A, B vb.) verir.
Curl Komutu ile Kontrol
Sunucunuzdan veya başka bir Linux makinesinden curl komutunu kullanarak da HTTP/2 desteğini kontrol edebilirsiniz:
curl -I --http2 -s https://ornekalanadi.com
Çıktıda HTTP/2 başlıklarını görmelisiniz. Örneğin:
HTTP/2 200
server: nginx/1.10.3 (Ubuntu)
date: ...
content-type: text/html
...
Eğer HTTP/2 yerine HTTP/1.1 görüyorsanız veya --http2 seçeneği hata veriyorsa, curl sürümünüzün HTTP/2 desteği olmayabilir veya Nginx yapılandırmanızda bir sorun olabilir.
Ek Güvenlik ve Performans İyileştirmeleri
Nginx ve HTTP/2 kurulumunuzu tamamladıktan sonra, web sitenizin performansını ve güvenliğini daha da artırmak için bazı ek optimizasyonlar yapabilirsiniz.
Nginx Optimizasyonları
Nginx’in ana yapılandırma dosyası olan /etc/nginx/nginx.conf üzerinde bazı genel performans ayarları yapılabilir.
sudo nano /etc/nginx/nginx.conf
http bloğunun içine veya dışına aşağıdaki yönergeleri ekleyebilir veya düzenleyebilirsiniz:
* worker_processes: Nginx’in çalıştıracağı worker process sayısını belirler. Genellikle sunucunuzdaki CPU çekirdeği sayısına eşit veya bu sayının iki katı olarak ayarlanır. auto olarak ayarlamak da bir seçenektir.
worker_processes auto;
* worker_connections: Her bir worker process’in aynı anda işleyebileceği maksimum bağlantı sayısını belirler. Yüksek trafikli siteler için bu değeri artırmak gerekebilir.
events {
worker_connections 1024; # Varsayılan olarak 768 olabilir
}
* keepalive_timeout: İstemci bağlantısının ne kadar süre açık kalacağını belirler. HTTP/2 ile bu değerin önemi azalır, ancak HTTP/1.1 istemcileri için hala faydalıdır.
keepalive_timeout 65;
* sendfile on; ve tcp_nopush on;: Dosya transferini optimize eder.
sendfile on;
tcp_nopush on;
* gzip on;: İçerik sıkıştırmasını etkinleştirir. HTTP/2 başlık sıkıştırması sunsa da, içerik sıkıştırması (gzip) hala faydalıdır.
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
Bu değişiklikleri yaptıktan sonra sudo nginx -t ile kontrol edip sudo systemctl reload nginx ile Nginx’i yeniden başlatmayı unutmayın.
Güvenlik Başlıkları
Daha önce eklediğimiz Strict-Transport-Security dışındaki bazı güvenlik başlıkları da sitenizin güvenliğini artırabilir. Bunları server bloğunuza ekleyebilirsiniz:
* X-Frame-Options: Sitenizin başka bir sitede iframe içinde gösterilip gösterilemeyeceğini kontrol eder. SAMEORIGIN veya DENY en güvenli seçeneklerdir.
add_header X-Frame-Options "SAMEORIGIN";
* X-Content-Type-Options: Tarayıcıların MIME türü koklamasını (sniffing) önler.
add_header X-Content-Type-Options "nosniff";
* X-XSS-Protection: Tarayıcıların XSS (Cross-Site Scripting) saldırılarını tespit etmesi ve engellemesi için bir mekanizma sağlar.
add_header X-XSS-Protection "1; mode=block";
* Referrer-Policy: Referans bilgilerinin nasıl gönderileceğini kontrol eder.
add_header Referrer-Policy "no-referrer-when-downgrade";
* Content-Security-Policy (CSP): XSS ve veri enjeksiyonu saldırılarını hafifletmek için güçlü bir güvenlik politikasıdır. Ancak doğru yapılandırmak karmaşık olabilir ve dikkatli olunmazsa sitenizi bozabilir. Başlangıçta eklenmesi isteğe bağlıdır ve kapsamlı bir test gerektirir.
# add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted.cdn.com; style-src 'self' 'unsafe-inline';" always;
Bu başlığı eklerken dikkatli olun ve sitenizin tüm kaynaklarını doğru bir şekilde listelediğinizden emin olun.
Sıkça Sorulan Sorular ve Sorun Giderme
Kurulum sırasında veya sonrasında karşılaşabileceğiniz bazı yaygın sorunlar ve çözümleri:
Nginx Başlatılamıyor veya Yeniden Yüklenemiyor
* Sorun: systemctl reload nginx veya systemctl restart nginx komutları hata veriyor.
* Çözüm: Nginx yapılandırma dosyasında bir hata olması muhtemeldir. sudo nginx -t komutunu çalıştırarak hatanın nerede olduğunu kontrol edin. Çıktıdaki hata mesajı ve satır numarası size yardımcı olacaktır. Genellikle noktalı virgül eksikliği, yanlış yönerge veya dosya yolu hataları bu tür sorunlara neden olur.
Sertifika Hatası veya Geçersiz Sertifika Uyarısı
* Sorun: Tarayıcınızda “Bağlantınız güvenli değil” veya benzeri bir uyarı alıyorsunuz.
* Çözüm:
* Sertifika yollarının Nginx yapılandırmanızda doğru olduğundan emin olun (ssl_certificate ve ssl_certificate_key).
* Certbot’un sertifikayı başarıyla aldığından emin olun. /etc/letsencrypt/live/your_domain/ dizinindeki dosyaların varlığını kontrol edin.
* DNS kayıtlarınızın doğru olduğundan ve alan adınızın sunucunuzun IP adresine işaret ettiğinden emin olun. Certbot, sertifika alırken alan adınızın çözümlenebilir olmasını gerektirir.
* Güvenlik duvarınızın 443 portuna (HTTPS) izin verdiğinden emin olun (sudo ufw status).
HTTP/2 Çalışmıyor (Tarayıcıda h2 yerine http/1.1 görünüyor)
* Sorun: HTTP/2’yi etkinleştirdiğinizden eminsiniz, ancak tarayıcı veya curl hala HTTP/1.1 gösteriyor.
* Çözüm:
* Nginx yapılandırmanızdaki listen 443 ssl http2; yönergesini dikkatlice kontrol edin. http2 anahtar kelimesinin eksiksiz ve doğru olduğundan emin olun.
* Nginx’i yeniden başlattığınızdan emin olun (sudo systemctl reload nginx).
* Tarayıcınızın önbelleğini temizleyin veya gizli pencerede deneyin.
* SSL/TLS sertifikanızın geçerli ve doğru şekilde yüklü olduğundan emin olun. HTTP/2, SSL/TLS olmadan modern tarayıcılarda çalışmaz.
* Ubuntu 16.04’te kullandığınız Nginx sürümünün HTTP/2’yi desteklediğinden emin olun (Nginx 1.9.5 ve üzeri). Varsayılan 1.10.x sürümü destekler.
ssl_protocols TLSv1.2 TLSv1.3; Hatası
* Sorun: Nginx yeniden başlatılırken unknown protocol "TLSv1.3" gibi bir hata alıyorsunuz.
* Çözüm: Ubuntu 16.04’ün varsayılan Nginx sürümü (genellikle 1.10.x), TLSv1.3 desteğine sahip olmayabilir. Bu durumda, ssl_protocols yönergesini ssl_protocols TLSv1.2; olarak değiştirmeniz veya sadece include /etc/letsencrypt/options-ssl-nginx.conf; satırını kullanmanız yeterli olacaktır, çünkü bu dosya genellikle uyumlu ve güvenli protokolleri zaten içerir.
Sonuç
Bu kapsamlı rehberde, Ubuntu 16.04 işletim sistemi üzerinde Nginx web sunucusunu HTTP/2 desteğiyle nasıl kuracağınızı ve yapılandıracağınızı adım adım öğrendiniz. Nginx’i kurmaktan, Let’s Encrypt ile ücretsiz SSL/TLS sertifikası almaya ve HTTP/2’yi etkinleştirmeye kadar tüm süreci detaylıca inceledik. Ayrıca, web sitenizin performansını ve güvenliğini artırmak için ek optimizasyonlar ve yaygın sorun giderme yöntemleri hakkında bilgi edindiniz.
HTTP/2’nin sunduğu hız ve verimlilik avantajları ile Nginx’in kararlı ve yüksek performanslı yapısını birleştirmek, modern web uygulamaları için güçlü bir temel oluşturur. Bu kurulum, kullanıcı deneyimini iyileştirecek, SEO puanınızı artıracak ve web sitenizin geleceğe hazır olmasını sağlayacaktır. Unutmayın ki sunucu bakımı ve güvenlik güncellemeleri, herhangi bir web uygulamasının uzun ömürlülüğü ve güvenliği için hayati öneme sahiptir. Düzenli olarak sisteminizi ve Nginx’i güncel tutmayı ihmal etmeyin.