{"id":35388,"date":"2025-11-29T03:40:49","date_gmt":"2025-11-29T00:40:49","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=35388"},"modified":"2025-11-29T03:40:49","modified_gmt":"2025-11-29T00:40:49","slug":"nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/","title":{"rendered":"Nginx&#8217;i Ubuntu 18.04 \u00dczerinde HTTP\/2 Deste\u011fi ile Kurulumu"},"content":{"rendered":"<p><body><\/p>\n<h2>Nginx&#8217;i Ubuntu 18.04 \u00dczerinde HTTP\/2 Deste\u011fi ile Kurulumu<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla geli\u015fen dijital d\u00fcnyas\u0131nda, web sitelerinin performans\u0131 ve g\u00fcvenli\u011fi, kullan\u0131c\u0131 deneyimi ve arama motoru s\u0131ralamalar\u0131 i\u00e7in kritik \u00f6neme sahiptir. Nginx, y\u00fcksek performansl\u0131, a\u00e7\u0131k kaynakl\u0131 bir web sunucusu ve ters proxy olarak, bu gereksinimleri kar\u015f\u0131lamada \u00f6nc\u00fc bir rol oynamaktad\u0131r. HTTP\/2 ise, web&#8217;in temel ileti\u015fim protokol\u00fc olan HTTP&#8217;nin ikinci b\u00fcy\u00fck s\u00fcr\u00fcm\u00fc olup, web performans\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rmak i\u00e7in tasarlanm\u0131\u015ft\u0131r. Bu makalede, Nginx&#8217;i Ubuntu 18.04 i\u015fletim sistemi \u00fczerinde HTTP\/2 deste\u011fi ile nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m detayl\u0131 bir \u015fekilde inceleyece\u011fiz.<\/p>\n<p>Nginx, e\u015fzamanl\u0131 ba\u011flant\u0131lar\u0131 d\u00fc\u015f\u00fck bellek t\u00fcketimiyle i\u015fleyebilme yetene\u011fi sayesinde, \u00f6zellikle y\u00fcksek trafikli web siteleri i\u00e7in pop\u00fcler bir se\u00e7imdir. Mod\u00fcler yap\u0131s\u0131 ve esnek yap\u0131land\u0131rma se\u00e7enekleri, onu \u00e7e\u015fitli kullan\u0131m senaryolar\u0131na uygun hale getirir. Ubuntu 18.04 (Bionic Beaver) ise, uzun s\u00fcreli destek (LTS) sunan, stabil ve yayg\u0131n olarak kullan\u0131lan bir Linux da\u011f\u0131t\u0131m\u0131d\u0131r. Bu kombinasyon, g\u00fcvenilir ve y\u00fcksek performansl\u0131 bir web sunucusu ortam\u0131 olu\u015fturmak i\u00e7in ideal bir temel sa\u011flar.<\/p>\n<p>HTTP\/2, HTTP\/1.1&#8217;in baz\u0131 temel s\u0131n\u0131rlamalar\u0131n\u0131 a\u015farak web&#8217;in daha h\u0131zl\u0131 ve verimli \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar. En \u00f6nemli \u00f6zelliklerinden baz\u0131lar\u0131 \u015funlard\u0131r:<br \/>\n*   <strong>Multiplexing (\u00c7oklama):<\/strong> Tek bir TCP ba\u011flant\u0131s\u0131 \u00fczerinden birden fazla e\u015fzamanl\u0131 istek ve yan\u0131t g\u00f6nderme yetene\u011fi. Bu, &#8220;head-of-line blocking&#8221; sorununu ortadan kald\u0131r\u0131r ve kaynaklar\u0131n paralel olarak y\u00fcklenmesini sa\u011flar. HTTP\/1.1&#8217;de her kaynak i\u00e7in ayr\u0131 bir ba\u011flant\u0131 a\u00e7\u0131lmas\u0131 gerekti\u011finden, bu durum ciddi gecikmelere yol a\u00e7abiliyordu.<br \/>\n*   <strong>Header Compression (Ba\u015fl\u0131k S\u0131k\u0131\u015ft\u0131rma):<\/strong> HTTP istek ve yan\u0131t ba\u015fl\u0131klar\u0131, HPACK s\u0131k\u0131\u015ft\u0131rma algoritmas\u0131 kullan\u0131larak s\u0131k\u0131\u015ft\u0131r\u0131l\u0131r. Bu, \u00f6zellikle \u00e7ok say\u0131da k\u00fc\u00e7\u00fck istekte bant geni\u015fli\u011fi kullan\u0131m\u0131n\u0131 azalt\u0131r.<br \/>\n*   <strong>Server Push (Sunucu \u0130tme):<\/strong> Sunucu, istemcinin hen\u00fcz istemedi\u011fi, ancak yak\u0131nda isteyece\u011fini tahmin etti\u011fi kaynaklar\u0131 (CSS, JavaScript dosyalar\u0131 gibi) proaktif olarak g\u00f6nderebilir. Bu, istemcinin ek bir istek g\u00f6ndermesini beklemeksizin kaynaklar\u0131n \u00f6nceden y\u00fcklenmesini sa\u011flar ve sayfa y\u00fckleme s\u00fcrelerini k\u0131salt\u0131r.<br \/>\n*   <strong>Stream Prioritization (Ak\u0131\u015f \u00d6nceliklendirme):<\/strong> \u0130stemci, kaynaklar\u0131n hangi s\u0131rayla y\u00fcklenece\u011fine dair sunucuya ipu\u00e7lar\u0131 verebilir. Bu, kritik kaynaklar\u0131n daha h\u0131zl\u0131 y\u00fcklenmesini sa\u011flayarak kullan\u0131c\u0131 deneyimini iyile\u015ftirir.<\/p>\n<p>HTTP\/2&#8217;nin bu avantajlar\u0131ndan tam olarak yararlanabilmek i\u00e7in, modern taray\u0131c\u0131lar genellikle SSL\/TLS \u015fifrelemesi gerektirir. Bu nedenle, Nginx&#8217;i HTTP\/2 ile yap\u0131land\u0131r\u0131rken bir SSL\/TLS sertifikas\u0131 kullanmak zorunludur. Bu makalede, Let&#8217;s Encrypt ile \u00fccretsiz bir SSL\/TLS sertifikas\u0131 almay\u0131 da ele alaca\u011f\u0131z.<\/p>\n<p>Bu makalenin sonunda, Ubuntu 18.04 sunucunuzda Nginx&#8217;i HTTP\/2 ve SSL\/TLS ile g\u00fcvenli ve performansl\u0131 bir \u015fekilde \u00e7al\u0131\u015f\u0131r duruma getirmi\u015f olacaks\u0131n\u0131z.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>Bu kurulum s\u00fcrecine ba\u015flamadan \u00f6nce, a\u015fa\u011f\u0131daki \u00f6n gereksinimlere sahip oldu\u011funuzdan emin olun:<\/p>\n<p>*   <strong>Ubuntu 18.04 Sunucusu:<\/strong> Root eri\u015fimi veya <code>sudo<\/code> yetkilerine sahip bir kullan\u0131c\u0131 ile yap\u0131land\u0131r\u0131lm\u0131\u015f bir Ubuntu 18.04 sunucusu. Makineye SSH ile eri\u015febiliyor olman\u0131z gerekmektedir.<br \/>\n*   <strong>Alan Ad\u0131 (Domain Name):<\/strong> Sunucunuza y\u00f6nlendirilmi\u015f ge\u00e7erli bir alan ad\u0131 (\u00f6rn. <code>example.com<\/code>). Bu, SSL\/TLS sertifikas\u0131 almak ve web sitenize eri\u015fmek i\u00e7in gereklidir. Alan ad\u0131n\u0131z\u0131n DNS kay\u0131tlar\u0131n\u0131n (A kayd\u0131 veya CNAME kayd\u0131) sunucunuzun IP adresine do\u011fru \u015fekilde i\u015faret etti\u011finden emin olun.<br \/>\n*   <strong>SSL\/TLS Sertifikas\u0131:<\/strong> HTTP\/2&#8217;nin modern taray\u0131c\u0131lar taraf\u0131ndan desteklenmesi i\u00e7in SSL\/TLS \u015fifrelemesi zorunludur. Bu makalede, \u00fccretsiz ve otomatikle\u015ftirilmi\u015f bir se\u00e7enek olan Let&#8217;s Encrypt sertifikalar\u0131n\u0131 kullanaca\u011f\u0131z.<br \/>\n*   <strong>Temel Linux Komut Bilgisi:<\/strong> Terminalde temel komutlar\u0131 (\u00f6rn. <code>cd<\/code>, <code>ls<\/code>, <code>nano<\/code>, <code>apt<\/code>) kullanma konusunda rahat olman\u0131z beklenmektedir.<\/p>\n<p>Bu gereksinimler sa\u011fland\u0131\u011f\u0131nda, kuruluma ba\u015flayabiliriz.<\/p>\n<h3>Ad\u0131m 1: Sistemi G\u00fcncelleme<\/h3>\n<p>Herhangi bir yaz\u0131l\u0131m kurulumuna ba\u015flamadan \u00f6nce, sistem paket listelerinizi g\u00fcncellemek ve mevcut paketlerinizi en son s\u00fcr\u00fcmlerine y\u00fckseltmek iyi bir uygulamad\u0131r. Bu, olas\u0131 ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 \u00f6nler ve sisteminizin g\u00fcvenli\u011fini sa\u011flar.<\/p>\n<p>Terminalinizi a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade -y<\/code><\/pre>\n<p>*   <code>sudo apt update<\/code>: Bu komut, yerel paket indeksinizi, depolardan gelen en son paket bilgileriyle g\u00fcnceller. Hangi paketlerin y\u00fckseltilebilece\u011fini ve yeni hangi paketlerin mevcut oldu\u011funu \u00f6\u011frenir.<br \/>\n*   <code>sudo apt upgrade -y<\/code>: Bu komut, <code>update<\/code> komutuyla g\u00fcncellenen paket indeksine g\u00f6re y\u00fckl\u00fc t\u00fcm paketleri en son s\u00fcr\u00fcmlerine y\u00fckseltir. <code>-y<\/code> bayra\u011f\u0131, t\u00fcm sorulara otomatik olarak &#8220;evet&#8221; yan\u0131t\u0131 vermenizi sa\u011flar, bu da etkile\u015fimsiz bir y\u00fckseltme s\u00fcreci sa\u011flar.<\/p>\n<p>Bu i\u015flem biraz zaman alabilir. Tamamland\u0131\u011f\u0131nda, bir sonraki ad\u0131ma ge\u00e7ebiliriz.<\/p>\n<h3>Ad\u0131m 2: Nginx Kurulumu<\/h3>\n<p>Sisteminiz g\u00fcncel oldu\u011funa g\u00f6re, Nginx web sunucusunu kurabiliriz. Ubuntu&#8217;nun varsay\u0131lan depolar\u0131nda Nginx&#8217;in g\u00fcncel bir s\u00fcr\u00fcm\u00fc bulunur ve bu s\u00fcr\u00fcm genellikle HTTP\/2 deste\u011fiyle derlenmi\u015f olarak gelir.<\/p>\n<p>Nginx&#8217;i kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt install nginx -y<\/code><\/pre>\n<p>Kurulum tamamland\u0131ktan sonra, Nginx servisinin durumunu kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">systemctl status nginx<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>active (running)<\/code> ibaresini g\u00f6rmeniz gerekmektedir. E\u011fer \u00e7al\u0131\u015fm\u0131yorsa, a\u015fa\u011f\u0131daki komutla ba\u015flatabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start nginx<\/code><\/pre>\n<p>Ayr\u0131ca, Nginx&#8217;in sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flamak i\u00e7in etkinle\u015ftirmeniz iyi bir fikirdir:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl enable nginx<\/code><\/pre>\n<p><strong>G\u00fcvenlik Duvar\u0131 Ayarlar\u0131 (UFW):<\/strong><br \/>\nE\u011fer Ubuntu sunucunuzda UFW (Uncomplicated Firewall) etkinse, Nginx&#8217;in gelen ba\u011flant\u0131lar\u0131 kabul edebilmesi i\u00e7in g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131 ayarlaman\u0131z gerekir. Nginx, UFW ile entegre profillerle gelir:<\/p>\n<p>*   <code>Nginx HTTP<\/code>: Yaln\u0131zca 80 numaral\u0131 ba\u011flant\u0131 noktas\u0131n\u0131 (HTTP) a\u00e7ar.<br \/>\n*   <code>Nginx HTTPS<\/code>: Yaln\u0131zca 443 numaral\u0131 ba\u011flant\u0131 noktas\u0131n\u0131 (HTTPS) a\u00e7ar.<br \/>\n*   <code>Nginx Full<\/code>: Hem 80 hem de 443 numaral\u0131 ba\u011flant\u0131 noktalar\u0131n\u0131 a\u00e7ar.<\/p>\n<p>HTTP\/2&#8217;yi SSL ile kullanaca\u011f\u0131m\u0131z i\u00e7in, hem HTTP hem de HTTPS trafi\u011fine izin vermemiz gerekecek. HTTP trafi\u011fine izin vermek, sitenize HTTP \u00fczerinden gelen ziyaret\u00e7ileri otomatik olarak HTTPS&#8217;ye y\u00f6nlendirmemizi sa\u011flayacakt\u0131r.<\/p>\n<p>\u00d6nce mevcut UFW uygulama profillerini listeleyin:<\/p>\n<pre><code class=\"language-bash\">sudo ufw app list<\/code><\/pre>\n<p>Ard\u0131ndan, Nginx Full profiline izin verin:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 'Nginx Full'<\/code><\/pre>\n<p>E\u011fer UFW etkin de\u011filse, etkinle\u015ftirmeniz gerekecektir. Etkinle\u015ftirmeden \u00f6nce SSH ba\u011flant\u0131s\u0131n\u0131n kesilmemesi i\u00e7in SSH portuna (varsay\u0131lan olarak 22) izin verdi\u011finizden emin olun:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow OpenSSH\nsudo ufw enable<\/code><\/pre>\n<p><code>y<\/code> tu\u015funa basarak onaylay\u0131n. Son olarak, UFW&#8217;nin durumunu kontrol ederek kurallar\u0131n do\u011fru bir \u015fekilde uyguland\u0131\u011f\u0131ndan emin olun:<\/p>\n<pre><code class=\"language-bash\">sudo ufw status<\/code><\/pre>\n<p>Art\u0131k bir web taray\u0131c\u0131s\u0131 a\u00e7\u0131p sunucunuzun IP adresini (veya alan ad\u0131n\u0131z\u0131, e\u011fer DNS kay\u0131tlar\u0131 g\u00fcncellenmi\u015fse) yazarak varsay\u0131lan Nginx kar\u015f\u0131lama sayfas\u0131n\u0131 g\u00f6rebilirsiniz. Bu, Nginx&#8217;in ba\u015far\u0131yla kuruldu\u011funu ve \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<h3>Ad\u0131m 3: SSL\/TLS Sertifikas\u0131 Alma<\/h3>\n<p>HTTP\/2&#8217;nin modern taray\u0131c\u0131larda \u00e7al\u0131\u015fmas\u0131 i\u00e7in SSL\/TLS \u015fifrelemesi zorunludur. Bu ad\u0131mda, \u00fccretsiz ve otomatik bir SSL\/TLS sertifikas\u0131 sa\u011flayan Let&#8217;s Encrypt&#8217;i Certbot arac\u0131 ile kullanaca\u011f\u0131z.<\/p>\n<p><strong>Certbot Kurulumu:<\/strong><br \/>\nCertbot, Let&#8217;s Encrypt sertifikalar\u0131n\u0131 almak ve y\u00f6netmek i\u00e7in kullan\u0131lan bir ara\u00e7t\u0131r. Nginx ile entegrasyonu sa\u011flayan bir eklentisi de mevcuttur.<\/p>\n<pre><code class=\"language-bash\">sudo apt install certbot python-certbot-nginx -y<\/code><\/pre>\n<p><strong>Sertifika Alma:<\/strong><br \/>\nCertbot&#8217;u Nginx eklentisiyle kullanarak alan ad\u0131n\u0131z i\u00e7in bir SSL\/TLS sertifikas\u0131 alabilirsiniz. A\u015fa\u011f\u0131daki komutu <code>your_domain.com<\/code> ve <code>www.your_domain.com<\/code> yerine kendi alan ad\u0131n\u0131zla de\u011fi\u015ftirerek \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo certbot --nginx -d your_domain.com -d www.your_domain.com<\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, Certbot sizden birka\u00e7 bilgi isteyecektir:<br \/>\n1.  <strong>E-posta Adresi:<\/strong> Sertifika bildirimleri ve acil durumlar i\u00e7in bir e-posta adresi girin.<br \/>\n2.  <strong>Hizmet \u015eartlar\u0131:<\/strong> Let&#8217;s Encrypt hizmet \u015fartlar\u0131n\u0131 kabul etmeniz istenecektir. <code>A<\/code> tu\u015funa basarak kabul edin.<br \/>\n3.  <strong>EFF Vakf\u0131 ile Payla\u015f\u0131m:<\/strong> E-posta adresinizi EFF (Electronic Frontier Foundation) ile payla\u015f\u0131p payla\u015fmak istemedi\u011finiz sorulacakt\u0131r. <code>Y<\/code> veya <code>N<\/code> tu\u015funa basarak se\u00e7iminizi yap\u0131n.<br \/>\n4.  <strong>HTTP&#8217;den HTTPS&#8217;ye Y\u00f6nlendirme:<\/strong> Certbot, Nginx yap\u0131land\u0131rman\u0131z\u0131 otomatik olarak HTTP&#8217;den HTTPS&#8217;ye y\u00f6nlendirme yapacak \u015fekilde g\u00fcncelleyip g\u00fcncellemeyece\u011fini soracakt\u0131r. <code>2<\/code> se\u00e7ene\u011fini (Redirect) se\u00e7erek t\u00fcm HTTP trafi\u011fini HTTPS&#8217;ye y\u00f6nlendirmenizi \u015fiddetle tavsiye ederiz. Bu, g\u00fcvenlik i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<p>T\u00fcm ad\u0131mlar\u0131 tamamlad\u0131\u011f\u0131n\u0131zda, Certbot sertifikay\u0131 ba\u015far\u0131yla alacak ve Nginx yap\u0131land\u0131rman\u0131z\u0131 g\u00fcncelleyecektir. Ba\u015far\u0131l\u0131 bir kurulumda \u015f\u00f6yle bir mesaj g\u00f6rmelisiniz:<\/p>\n<pre><code class=\"language-\">Congratulations! Your certificate and chain have been saved at:\n\/etc\/letsencrypt\/live\/your_domain.com\/fullchain.pem\nYour key file has been saved at:\n\/etc\/letsencrypt\/live\/your_domain.com\/privkey.pem\n...<\/code><\/pre>\n<p><strong>Otomatik Yenileme Testi:<\/strong><br \/>\nLet&#8217;s Encrypt sertifikalar\u0131 90 g\u00fcn ge\u00e7erlidir. Certbot, sertifikalar\u0131 otomatik olarak yenilemek i\u00e7in bir cron job veya systemd timer kurar. Bu otomatik yenileme s\u00fcrecinin \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in bir kuru \u00e7al\u0131\u015ft\u0131rma (dry-run) yapabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo certbot renew --dry-run<\/code><\/pre>\n<p>E\u011fer herhangi bir hata mesaj\u0131 almazsan\u0131z, otomatik yenilemenin d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131 anlam\u0131na gelir.<\/p>\n<h3>Ad\u0131m 4: Nginx Yap\u0131land\u0131rmas\u0131n\u0131 HTTP\/2 Deste\u011fi i\u00e7in D\u00fczenleme<\/h3>\n<p>Certbot, SSL\/TLS&#8217;yi etkinle\u015ftirmek i\u00e7in Nginx yap\u0131land\u0131rman\u0131z\u0131 zaten de\u011fi\u015ftirmi\u015f olmal\u0131, ancak HTTP\/2 deste\u011fini a\u00e7\u0131k\u00e7a belirtmek i\u00e7in baz\u0131 ek d\u00fczenlemeler yapmam\u0131z gerekebilir.<\/p>\n<p>Nginx sitelerin yap\u0131land\u0131rma dosyalar\u0131 genellikle <code>\/etc\/nginx\/sites-available\/<\/code> dizininde bulunur. Certbot, genellikle varsay\u0131lan yap\u0131land\u0131rma dosyas\u0131n\u0131 (<code>\/etc\/nginx\/sites-available\/default<\/code>) veya alan ad\u0131n\u0131zla ayn\u0131 ad\u0131 ta\u015f\u0131yan yeni bir dosyay\u0131 (<code>\/etc\/nginx\/sites-available\/your_domain.com<\/code>) g\u00fcnceller.<\/p>\n<p>Yap\u0131land\u0131rma dosyan\u0131z\u0131 d\u00fczenlemek i\u00e7in bir metin d\u00fczenleyici kullan\u0131n. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/default<\/code><\/pre>\n<p>veya<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/your_domain.com<\/code><\/pre>\n<p>A\u00e7\u0131lan dosyada, <code>listen 443 ssl;<\/code> sat\u0131r\u0131n\u0131 bulman\u0131z gerekmektedir. Bu sat\u0131r\u0131 a\u015fa\u011f\u0131daki gibi <code>http2<\/code> anahtar kelimesini ekleyerek de\u011fi\u015ftirin:<\/p>\n<pre><code class=\"language-nginx\">listen 443 ssl http2;<\/code><\/pre>\n<p>Bu, Nginx&#8217;e 443 numaral\u0131 ba\u011flant\u0131 noktas\u0131nda SSL\/TLS ve HTTP\/2 protokollerini kullanmas\u0131n\u0131 s\u00f6yler.<\/p>\n<p>Ayr\u0131ca, <code>server<\/code> blo\u011funuzda a\u015fa\u011f\u0131daki SSL\/TLS ayarlar\u0131n\u0131n bulundu\u011fundan ve do\u011fru yollar\u0131 g\u00f6sterdi\u011finden emin olun. Certbot genellikle bunlar\u0131 otomatik olarak ekler, ancak kontrol etmek \u00f6nemlidir:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 443 ssl http2; # HTTP\/2 deste\u011fi burada!\n    listen [::]:443 ssl http2; # IPv6 i\u00e7in de HTTP\/2 deste\u011fi\n\n    server_name your_domain.com www.your_domain.com;\n\n    ssl_certificate \/etc\/letsencrypt\/live\/your_domain.com\/fullchain.pem; # Sertifika yolu\n    ssl_certificate_key \/etc\/letsencrypt\/live\/your_domain.com\/privkey.pem; # \u00d6zel anahtar yolu\n\n    ssl_protocols TLSv1.2 TLSv1.3; # Yaln\u0131zca g\u00fcvenli TLS s\u00fcr\u00fcmlerini kullan\u0131n\n    ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256'; # G\u00fcvenli \u015fifre paketleri\n    ssl_prefer_server_ciphers on; # Sunucunun \u015fifre se\u00e7imine \u00f6ncelik ver\n\n    # HTTP Strict Transport Security (HSTS) - Taray\u0131c\u0131lar\u0131n her zaman HTTPS kullanmas\u0131n\u0131 sa\u011flar\n    add_header Strict-Transport-Security \"max-age=63072000; includeSubDomains; preload\";\n\n    # OCSP Stapling (Performans ve Gizlilik)\n    ssl_stapling on;\n    ssl_stapling_verify on;\n    ssl_trusted_certificate \/etc\/letsencrypt\/live\/your_domain.com\/chain.pem;\n    resolver 8.8.8.8 8.8.4.4 valid=300s; # DNS \u00e7\u00f6z\u00fcmleyici\n    resolver_timeout 5s;\n\n    root \/var\/www\/html; # Web sitenizin k\u00f6k dizini\n    index index.html index.htm index.nginx-debian.html;\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n\n    # Di\u011fer yap\u0131land\u0131rmalar\u0131n\u0131z buraya gelebilir\n}<\/code><\/pre>\n<p>Yukar\u0131daki \u00f6rnekte \u00f6nemli noktalar:<br \/>\n*   <code>listen 443 ssl http2;<\/code>: Bu, HTTP\/2&#8217;yi etkinle\u015ftiren ana y\u00f6nergedir.<br \/>\n*   <code>ssl_protocols TLSv1.2 TLSv1.3;<\/code>: Yaln\u0131zca modern ve g\u00fcvenli TLS protokollerini kullanmak \u00f6nemlidir. Ubuntu 18.04&#8217;teki OpenSSL s\u00fcr\u00fcm\u00fc genellikle TLSv1.3&#8217;\u00fc destekler.<br \/>\n*   <code>ssl_ciphers<\/code>: G\u00fcvenli \u015fifre paketleri listesi. Bu liste s\u00fcrekli g\u00fcncellenebilir, en g\u00fcncel ve g\u00fcvenli listeyi Mozilla SSL Configuration Generator gibi kaynaklardan alabilirsiniz.<br \/>\n*   <code>add_header Strict-Transport-Security ...<\/code>: HTTP Strict Transport Security (HSTS) ba\u015fl\u0131\u011f\u0131, taray\u0131c\u0131lara belirli bir s\u00fcre boyunca (burada 2 y\u0131l) sitenize yaln\u0131zca HTTPS \u00fczerinden eri\u015fmeleri gerekti\u011fini bildirir. Bu, man-in-the-middle sald\u0131r\u0131lar\u0131n\u0131 \u00f6nlemeye yard\u0131mc\u0131 olur ve sitenizin her zaman g\u00fcvenli bir \u015fekilde y\u00fcklenmesini sa\u011flar. <code>preload<\/code> se\u00e7ene\u011fi, alan ad\u0131n\u0131z\u0131n HSTS \u00f6n y\u00fckleme listesine eklenmesini sa\u011flar, b\u00f6ylece taray\u0131c\u0131lar sitenizi daha hi\u00e7 ziyaret etmeden bile HTTPS ile y\u00fckler.<br \/>\n*   <code>ssl_stapling on;<\/code>: OCSP Stapling, sertifika iptal durumunu do\u011frulamak i\u00e7in yap\u0131lan sorgular\u0131 h\u0131zland\u0131r\u0131r ve gizlili\u011fi art\u0131r\u0131r.<br \/>\n*   <code>resolver<\/code>: OCSP sorgular\u0131 i\u00e7in kullan\u0131lacak DNS sunucular\u0131n\u0131 belirtir. Google&#8217;\u0131n genel DNS sunucular\u0131 (8.8.8.8 ve 8.8.4.4) yayg\u0131n olarak kullan\u0131l\u0131r.<\/p>\n<p><strong>HTTP&#8217;den HTTPS&#8217;ye Y\u00f6nlendirme:<\/strong><br \/>\nCertbot genellikle bu k\u0131sm\u0131 otomatik olarak yap\u0131land\u0131r\u0131r. E\u011fer <code>server<\/code> blo\u011funuzda 80 numaral\u0131 ba\u011flant\u0131 noktas\u0131n\u0131 dinleyen ve HTTPS&#8217;ye y\u00f6nlendiren bir yap\u0131land\u0131rma yoksa, a\u015fa\u011f\u0131daki gibi bir blok eklemeniz gerekecektir:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    listen [::]:80;\n    server_name your_domain.com www.your_domain.com;\n\n    return 301 https:\/\/$host$request_uri; # T\u00fcm HTTP trafi\u011fini HTTPS'ye y\u00f6nlendir\n}<\/code><\/pre>\n<p>Bu blok, 80 numaral\u0131 ba\u011flant\u0131 noktas\u0131na gelen t\u00fcm istekleri kal\u0131c\u0131 olarak (301 durum kodu ile) HTTPS s\u00fcr\u00fcm\u00fcne y\u00f6nlendirecektir.<\/p>\n<p>De\u011fi\u015fiklikleri kaydedin ve dosyadan \u00e7\u0131k\u0131n (nano&#8217;da <code>Ctrl+O<\/code>, <code>Enter<\/code>, <code>Ctrl+X<\/code>).<\/p>\n<h3>Ad\u0131m 5: Nginx Yap\u0131land\u0131rmas\u0131n\u0131 Test Etme ve Yeniden Ba\u015flatma<\/h3>\n<p>Yap\u0131land\u0131rma dosyas\u0131nda yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin s\u00f6zdizimi a\u00e7\u0131s\u0131ndan do\u011fru oldu\u011fundan emin olmak i\u00e7in Nginx&#8217;in kendi test arac\u0131n\u0131 kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t<\/code><\/pre>\n<p>E\u011fer her \u015fey yolundaysa, a\u015fa\u011f\u0131daki gibi bir \u00e7\u0131kt\u0131 g\u00f6rmelisiniz:<\/p>\n<pre><code class=\"language-\">nginx: the configuration file \/etc\/nginx\/nginx.conf syntax is ok\nnginx: configuration file \/etc\/nginx\/nginx.conf test is successful<\/code><\/pre>\n<p>Herhangi bir hata mesaj\u0131 al\u0131rsan\u0131z, yap\u0131land\u0131rma dosyan\u0131z\u0131 tekrar kontrol edin ve hatalar\u0131 d\u00fczeltin. Genellikle, hatalar sat\u0131r numaras\u0131yla birlikte belirtilir, bu da sorunu bulman\u0131za yard\u0131mc\u0131 olur.<\/p>\n<p>Yap\u0131land\u0131rma testi ba\u015far\u0131l\u0131 olduktan sonra, Nginx servisini yeniden ba\u015flatarak veya yeniden y\u00fckleyerek de\u011fi\u015fiklikleri uygulay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl reload nginx<\/code><\/pre>\n<p><code>reload<\/code> komutu, \u00e7al\u0131\u015fan servisi kesintiye u\u011fratmadan yap\u0131land\u0131rma de\u011fi\u015fikliklerini uygular. E\u011fer bir sorun ya\u015fan\u0131rsa, <code>restart<\/code> komutunu kullanabilirsiniz, ancak bu k\u0131sa bir kesintiye neden olabilir:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart nginx<\/code><\/pre>\n<h3>Ad\u0131m 6: HTTP\/2 Deste\u011fini Do\u011frulama<\/h3>\n<p>Nginx&#8217;i HTTP\/2 ile ba\u015far\u0131yla yap\u0131land\u0131rd\u0131\u011f\u0131n\u0131zdan emin olmak i\u00e7in birka\u00e7 farkl\u0131 y\u00f6ntemle do\u011frulama yapabilirsiniz.<\/p>\n<p><strong>1. Taray\u0131c\u0131 Geli\u015ftirici Ara\u00e7lar\u0131:<\/strong><br \/>\nModern web taray\u0131c\u0131lar\u0131, bir web sitesinin hangi protokol\u00fc kulland\u0131\u011f\u0131n\u0131 g\u00f6r\u00fcnt\u00fclemenizi sa\u011flayan geli\u015ftirici ara\u00e7lar\u0131na sahiptir.<br \/>\n*   Web sitenizi bir taray\u0131c\u0131da (Chrome, Firefox, Edge vb.) a\u00e7\u0131n.<br \/>\n*   F12 tu\u015funa basarak veya sa\u011f t\u0131klay\u0131p &#8220;\u0130ncele&#8221; se\u00e7ene\u011fini se\u00e7erek geli\u015ftirici ara\u00e7lar\u0131n\u0131 a\u00e7\u0131n.<br \/>\n*   &#8220;Network&#8221; (A\u011f) sekmesine gidin.<br \/>\n*   Sayfay\u0131 yenileyin.<br \/>\n*   Kaynaklar listesinde, &#8220;Protocol&#8221; (Protokol) s\u00fctununu aray\u0131n. E\u011fer bu s\u00fctun g\u00f6r\u00fcnm\u00fcyorsa, ba\u015fl\u0131k \u00e7ubu\u011funa sa\u011f t\u0131klay\u0131p &#8220;Protocol&#8221; se\u00e7ene\u011fini etkinle\u015ftirin.<br \/>\n*   Web sitenizin ana belgesi (genellikle ilk istek) i\u00e7in protokol s\u00fctununda <code>h2<\/code> veya <code>HTTP\/2<\/code> g\u00f6rmelisiniz. Bu, HTTP\/2&#8217;nin ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<p><strong>2. Online Ara\u00e7lar:<\/strong><br \/>\nBir\u00e7ok online ara\u00e7, web sitenizin HTTP\/2 deste\u011fini kontrol etmenizi sa\u011flar.<br \/>\n*   <strong>KeyCDN HTTP\/2 Test:<\/strong> <code>https:\/\/tools.keycdn.com\/http2-test<\/code> adresine gidin ve alan ad\u0131n\u0131z\u0131 girin. Sitenizin HTTP\/2&#8217;yi destekleyip desteklemedi\u011fini size bildirecektir.<br \/>\n*   <strong>GTmetrix veya Google PageSpeed Insights:<\/strong> Bu ara\u00e7lar, sitenizin genel performans\u0131n\u0131 analiz ederken HTTP\/2 kullan\u0131m\u0131n\u0131 da rapor edebilir.<\/p>\n<p><strong>3. cURL Komutu:<\/strong><br \/>\nTerminal \u00fczerinden <code>curl<\/code> komutunu kullanarak da HTTP\/2 deste\u011fini kontrol edebilirsiniz. Ubuntu 18.04&#8217;te y\u00fckl\u00fc olan <code>curl<\/code> s\u00fcr\u00fcm\u00fc genellikle HTTP\/2 deste\u011fiyle gelir.<\/p>\n<pre><code class=\"language-bash\">curl -I --http2 -s https:\/\/your_domain.com<\/code><\/pre>\n<p>Bu komutun \u00e7\u0131kt\u0131s\u0131nda, HTTP\/2 protokol\u00fcn\u00fcn kullan\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6steren bir sat\u0131r aray\u0131n. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-\">HTTP\/2 200<\/code><\/pre>\n<p>veya sadece <code>HTTP\/2<\/code> ifadesini aramak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">curl -I --http2 -s https:\/\/your_domain.com | grep \"HTTP\/2\"<\/code><\/pre>\n<p>E\u011fer bu komut <code>HTTP\/2<\/code> \u00e7\u0131kt\u0131s\u0131n\u0131 veriyorsa, Nginx&#8217;iniz HTTP\/2 \u00fczerinden ileti\u015fim kuruyor demektir.<\/p>\n<p>T\u00fcm bu do\u011frulama ad\u0131mlar\u0131, Nginx&#8217;inizin Ubuntu 18.04 \u00fczerinde HTTP\/2 deste\u011fiyle do\u011fru bir \u015fekilde yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan emin olman\u0131z\u0131 sa\u011flayacakt\u0131r.<\/p>\n<h3>Ek Optimizasyonlar ve G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/h3>\n<p>Nginx&#8217;i HTTP\/2 ile kurduktan sonra, web sitenizin performans\u0131n\u0131 ve g\u00fcvenli\u011fini daha da art\u0131rmak i\u00e7in baz\u0131 ek optimizasyonlar ve g\u00fcvenlik ipu\u00e7lar\u0131 uygulayabilirsiniz.<\/p>\n<p><strong>1. Gzip S\u0131k\u0131\u015ft\u0131rma:<\/strong><br \/>\nNginx, web i\u00e7eri\u011fini istemciye g\u00f6ndermeden \u00f6nce s\u0131k\u0131\u015ft\u0131rarak bant geni\u015fli\u011fi kullan\u0131m\u0131n\u0131 azaltabilir ve sayfa y\u00fckleme s\u00fcrelerini h\u0131zland\u0131rabilir. Bu, \u00f6zellikle metin tabanl\u0131 kaynaklar (HTML, CSS, JavaScript) i\u00e7in etkilidir.<\/p>\n<p>Nginx yap\u0131land\u0131rma dosyan\u0131zda (genellikle <code>\/etc\/nginx\/nginx.conf<\/code> veya site yap\u0131land\u0131rma dosyan\u0131zda) a\u015fa\u011f\u0131daki y\u00f6nergeleri ekleyin:<\/p>\n<pre><code class=\"language-nginx\">gzip on;\ngzip_vary on;\ngzip_proxied any;\ngzip_comp_level 6;\ngzip_buffers 16 8k;\ngzip_http_version 1.1;\ngzip_types text\/plain text\/css application\/json application\/javascript text\/xml application\/xml application\/xml+rss text\/javascript;<\/code><\/pre>\n<p>Bu ayarlar, belirtilen dosya t\u00fcrlerini s\u0131k\u0131\u015ft\u0131racak ve \u00e7o\u011fu taray\u0131c\u0131 taraf\u0131ndan desteklenen Gzip s\u0131k\u0131\u015ft\u0131rmas\u0131n\u0131 etkinle\u015ftirecektir.<\/p>\n<p><strong>2. \u00d6nbellekleme (Caching):<\/strong><br \/>\nStatik dosyalar (resimler, CSS, JavaScript) i\u00e7in taray\u0131c\u0131 \u00f6nbelleklemesini etkinle\u015ftirmek, tekrar eden ziyaretlerde sayfa y\u00fckleme s\u00fcrelerini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r.<\/p>\n<p>Nginx yap\u0131land\u0131rman\u0131zda, statik dosyalar\u0131n bulundu\u011fu <code>location<\/code> bloklar\u0131na <code>expires<\/code> y\u00f6nergesini ekleyebilirsiniz:<\/p>\n<pre><code class=\"language-nginx\">location ~* \\.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|ico|css|js)$ {\n    expires 365d; # Bu dosyalar\u0131 365 g\u00fcn boyunca \u00f6nbelle\u011fe al\n    add_header Cache-Control \"public, no-transform\";\n    access_log off; # Bu t\u00fcr dosyalar i\u00e7in eri\u015fim g\u00fcnl\u00fcklerini kapatarak disk I\/O'yu azalt\u0131n\n}<\/code><\/pre>\n<p>Bu, taray\u0131c\u0131lara bu dosyalar\u0131 belirtilen s\u00fcre boyunca yerel olarak depolamalar\u0131n\u0131 s\u00f6yleyecektir.<\/p>\n<p><strong>3. G\u00fcnl\u00fckleme (Logging):<\/strong><br \/>\nNginx, eri\u015fim ve hata g\u00fcnl\u00fcklerini tutar. Bu g\u00fcnl\u00fckler, sorun giderme ve g\u00fcvenlik analizi i\u00e7in \u00e7ok de\u011ferlidir. Varsay\u0131lan olarak etkindirler, ancak g\u00fcnl\u00fck formatlar\u0131n\u0131 \u00f6zelle\u015ftirebilir veya belirli <code>location<\/code> bloklar\u0131 i\u00e7in kapatabilirsiniz (yukar\u0131daki \u00f6rnekte oldu\u011fu gibi statik dosyalar i\u00e7in).<\/p>\n<p><code>nginx.conf<\/code> dosyas\u0131nda <code>http<\/code> blo\u011fu i\u00e7inde <code>log_format<\/code> y\u00f6nergesini bulabilirsiniz.<\/p>\n<p><strong>4. G\u00fcvenlik Duvar\u0131 (UFW):<\/strong><br \/>\nAd\u0131m 2&#8217;de UFW&#8217;yi yap\u0131land\u0131rm\u0131\u015f olsan\u0131z da, sunucunuzun g\u00fcvenli\u011fini sa\u011flamak i\u00e7in sadece gerekli ba\u011flant\u0131 noktalar\u0131n\u0131 a\u00e7\u0131k tutmaya devam edin. SSH (22), HTTP (80) ve HTTPS (443) genellikle yeterlidir. Di\u011fer t\u00fcm ba\u011flant\u0131 noktalar\u0131n\u0131 kapal\u0131 tutmak, sald\u0131r\u0131 y\u00fczeyini azalt\u0131r.<\/p>\n<p><strong>5. Modern TLS Ayarlar\u0131:<\/strong><br \/>\nAd\u0131m 4&#8217;teki yap\u0131land\u0131rmada g\u00fcvenli TLS protokolleri ve \u015fifre paketleri kullanm\u0131\u015ft\u0131k. Bu ayarlar\u0131 d\u00fczenli olarak g\u00f6zden ge\u00e7irmek ve g\u00fcncel g\u00fcvenlik standartlar\u0131na uygun tutmak \u00f6nemlidir. Mozilla SSL Configuration Generator gibi ara\u00e7lar, g\u00fcncel \u00f6nerileri alman\u0131za yard\u0131mc\u0131 olabilir.<\/p>\n<p><strong>6. HTTP\/2 Server Push (\u0130stemci \u0130tme):<\/strong><br \/>\nHTTP\/2&#8217;nin \u00f6nemli \u00f6zelliklerinden biri olan Server Push, sunucunun istemcinin hen\u00fcz istemedi\u011fi kaynaklar\u0131 proaktif olarak g\u00f6ndermesine olanak tan\u0131r. Nginx&#8217;in do\u011frudan HTTP\/2 Server Push deste\u011fi, Nginx 1.13.9 s\u00fcr\u00fcm\u00fcnden itibaren mevcuttur. E\u011fer Nginx s\u00fcr\u00fcm\u00fcn\u00fcz bu veya daha yeniyse, yap\u0131land\u0131rman\u0131za <code>http2_push<\/code> y\u00f6nergesini ekleyebilirsiniz. Ubuntu 18.04&#8217;teki Nginx s\u00fcr\u00fcm\u00fc genellikle daha eski oldu\u011fu i\u00e7in bu \u00f6zellik varsay\u0131lan olarak desteklenmeyebilir.<\/p>\n<p>E\u011fer Nginx s\u00fcr\u00fcm\u00fcn\u00fcz destekliyorsa:<\/p>\n<pre><code class=\"language-nginx\"># Nginx 1.13.9 ve sonras\u0131 i\u00e7in\nhttp2_push \/static\/css\/style.css;\nhttp2_push \/static\/js\/main.js;<\/code><\/pre>\n<p>E\u011fer Nginx s\u00fcr\u00fcm\u00fcn\u00fcz bu \u00f6zelli\u011fi do\u011frudan desteklemiyorsa, bunu uygulama katman\u0131nda (\u00f6rn. PHP veya Node.js uygulamalar\u0131nda) veya web sitenizde <code>Link<\/code> HTTP ba\u015fl\u0131klar\u0131n\u0131 kullanarak sim\u00fcle edebilirsiniz. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-nginx\">add_header Link \"<\/static\/css\/style.css>; rel=preload; as=style, <\/static\/js\/main.js>; rel=preload; as=script\";<\/code><\/pre>\n<p>Bu, taray\u0131c\u0131ya bu kaynaklar\u0131 erken a\u015famada y\u00fcklemesini bildirir ve Server Push&#8217;a benzer bir etki yarat\u0131r.<\/p>\n<p><strong>7. G\u00fcvenlik Ba\u015fl\u0131klar\u0131:<\/strong><br \/>\nHSTS d\u0131\u015f\u0131nda, taray\u0131c\u0131lara sitenizle nas\u0131l etkile\u015fim kuracaklar\u0131 konusunda ek g\u00fcvenlik talimatlar\u0131 veren ba\u015fka HTTP g\u00fcvenlik ba\u015fl\u0131klar\u0131 da vard\u0131r.<\/p>\n<p>*   <code>X-Content-Type-Options \"nosniff\";<\/code>: Taray\u0131c\u0131lar\u0131n i\u00e7eri\u011fin MIME t\u00fcr\u00fcn\u00fc tahmin etmesini engeller.<br \/>\n*   <code>X-Frame-Options \"DENY\";<\/code>: Sitenizin iframe&#8217;ler i\u00e7inde g\u00f6r\u00fcnt\u00fclenmesini engeller, clickjacking sald\u0131r\u0131lar\u0131n\u0131 \u00f6nler.<br \/>\n*   <code>X-XSS-Protection \"1; mode=block\";<\/code>: Taray\u0131c\u0131lar\u0131n XSS (Cross-Site Scripting) sald\u0131r\u0131lar\u0131n\u0131 alg\u0131lamas\u0131n\u0131 ve engellemesini sa\u011flar.<br \/>\n*   <code>Referrer-Policy \"no-referrer-when-downgrade\";<\/code>: Y\u00f6nlendiren bilgilerin nas\u0131l g\u00f6nderilece\u011fini kontrol eder.<\/p>\n<p>Bu ba\u015fl\u0131klar\u0131 Nginx yap\u0131land\u0131rman\u0131zdaki <code>server<\/code> blo\u011funa ekleyebilirsiniz:<\/p>\n<pre><code class=\"language-nginx\">add_header X-Content-Type-Options \"nosniff\";\nadd_header X-Frame-Options \"DENY\";\nadd_header X-XSS-Protection \"1; mode=block\";\nadd_header Referrer-Policy \"no-referrer-when-downgrade\";<\/code><\/pre>\n<p>Bu optimizasyonlar ve g\u00fcvenlik ipu\u00e7lar\u0131, Nginx sunucunuzu daha h\u0131zl\u0131, daha g\u00fcvenli ve daha verimli hale getirecektir. Her de\u011fi\u015fiklikten sonra Nginx yap\u0131land\u0131rmas\u0131n\u0131 test etmeyi (<code>sudo nginx -t<\/code>) ve servisi yeniden y\u00fcklemeyi (<code>sudo systemctl reload nginx<\/code>) unutmay\u0131n.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<p><strong>1. Neden HTTP\/2 kullanmal\u0131y\u0131m?<\/strong><br \/>\nHTTP\/2, web performans\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131ran bir protokold\u00fcr. Multiplexing (tek ba\u011flant\u0131 \u00fczerinden birden fazla iste\u011fi i\u015fleme), ba\u015fl\u0131k s\u0131k\u0131\u015ft\u0131rma ve sunucu itme gibi \u00f6zellikler sayesinde sayfa y\u00fckleme s\u00fcrelerini k\u0131salt\u0131r, bant geni\u015fli\u011fi kullan\u0131m\u0131n\u0131 azalt\u0131r ve genel kullan\u0131c\u0131 deneyimini iyile\u015ftirir. Ayr\u0131ca, modern taray\u0131c\u0131lar HTTP\/2&#8217;yi SSL\/TLS ile birlikte zorunlu k\u0131ld\u0131\u011f\u0131ndan, sitenizin g\u00fcncel g\u00fcvenlik standartlar\u0131na uyumlu olmas\u0131 i\u00e7in de gereklidir.<\/p>\n<p><strong>2. HTTP\/2 ile HTTP\/1.1 aras\u0131ndaki temel farklar nelerdir?<\/strong><br \/>\n*   <strong>Ba\u011flant\u0131 Y\u00f6netimi:<\/strong> HTTP\/1.1 her istek i\u00e7in yeni bir TCP ba\u011flant\u0131s\u0131 a\u00e7arken veya s\u0131n\u0131rl\u0131 say\u0131da paralel ba\u011flant\u0131 kullan\u0131rken, HTTP\/2 tek bir TCP ba\u011flant\u0131s\u0131 \u00fczerinden birden fazla e\u015fzamanl\u0131 istek ve yan\u0131t\u0131 i\u015fleyebilir (multiplexing). Bu, &#8220;head-of-line blocking&#8221; sorununu \u00e7\u00f6zer.<br \/>\n*   <strong>Ba\u015fl\u0131k S\u0131k\u0131\u015ft\u0131rma:<\/strong> HTTP\/2, istek ve yan\u0131t ba\u015fl\u0131klar\u0131n\u0131 HPACK algoritmas\u0131 kullanarak s\u0131k\u0131\u015ft\u0131r\u0131r, bu da bant geni\u015fli\u011fi kullan\u0131m\u0131n\u0131 azalt\u0131r. HTTP\/1.1&#8217;de ba\u015fl\u0131klar s\u0131k\u0131\u015ft\u0131r\u0131lmazd\u0131.<br \/>\n*   <strong>Sunucu \u0130tme (Server Push):<\/strong> HTTP\/2, sunucunun istemcinin hen\u00fcz istemedi\u011fi kaynaklar\u0131 proaktif olarak g\u00f6ndermesine olanak tan\u0131r. HTTP\/1.1&#8217;de istemci t\u00fcm kaynaklar\u0131 tek tek istemek zorundayd\u0131.<br \/>\n*   <strong>\u0130kili Protokol:<\/strong> HTTP\/2, metin tabanl\u0131 HTTP\/1.1&#8217;in aksine ikili bir protokold\u00fcr. Bu, daha verimli ayr\u0131\u015ft\u0131rma ve daha az hata anlam\u0131na gelir.<\/p>\n<p><strong>3. Nginx&#8217;in hangi s\u00fcr\u00fcm\u00fc HTTP\/2&#8217;yi destekler?<\/strong><br \/>\nNginx, 1.9.5 s\u00fcr\u00fcm\u00fcnden itibaren HTTP\/2 deste\u011fi sunmaktad\u0131r. Ubuntu 18.04&#8217;\u00fcn varsay\u0131lan depolar\u0131nda bulunan Nginx s\u00fcr\u00fcm\u00fc (genellikle 1.14.x veya \u00fczeri), HTTP\/2 deste\u011fiyle derlenmi\u015f olarak gelir. Nginx s\u00fcr\u00fcm\u00fcn\u00fcz\u00fc kontrol etmek i\u00e7in <code>nginx -v<\/code> komutunu kullanabilirsiniz.<\/p>\n<p><strong>4. HTTP\/2 i\u00e7in SSL\/TLS zorunlu mu?<\/strong><br \/>\nTeknik olarak HTTP\/2 protokol\u00fc SSL\/TLS \u015fifrelemesini zorunlu k\u0131lmaz. Ancak, Google Chrome, Mozilla Firefox ve Microsoft Edge gibi t\u00fcm b\u00fcy\u00fck web taray\u0131c\u0131lar\u0131, HTTP\/2&#8217;yi yaln\u0131zca SSL\/TLS \u00fczerinden \u015fifrelenmi\u015f ba\u011flant\u0131larda destekler. Bu nedenle, pratikte, web sitenizde HTTP\/2 kullanmak istiyorsan\u0131z bir SSL\/TLS sertifikas\u0131 (HTTPS) kullanmak zorunludur. Let&#8217;s Encrypt gibi \u00fccretsiz se\u00e7enekler sayesinde bu art\u0131k kolayca yap\u0131labilir.<\/p>\n<p><strong>5. Nginx yap\u0131land\u0131rmas\u0131nda yapt\u0131\u011f\u0131m de\u011fi\u015fiklikler neden etkili olmuyor?<\/strong><br \/>\nNginx yap\u0131land\u0131rmas\u0131nda bir de\u011fi\u015fiklik yapt\u0131\u011f\u0131n\u0131zda, bu de\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in Nginx servisini yeniden y\u00fcklemeniz veya yeniden ba\u015flatman\u0131z gerekir. <code>sudo systemctl reload nginx<\/code> komutu, servisi kesintiye u\u011fratmadan yap\u0131land\u0131rmay\u0131 yeniden y\u00fckler. E\u011fer hala sorun ya\u015f\u0131yorsan\u0131z, <code>sudo nginx -t<\/code> komutuyla yap\u0131land\u0131rma dosyan\u0131zda s\u00f6zdizimi hatas\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin ve Nginx hata g\u00fcnl\u00fcklerini (<code>\/var\/log\/nginx\/error.log<\/code>) inceleyin.<\/p>\n<p><strong>6. HSTS (Strict-Transport-Security) nedir ve neden kullanmal\u0131y\u0131m?<\/strong><br \/>\nHSTS (HTTP Strict Transport Security), bir web sunucusunun taray\u0131c\u0131lara sitenize her zaman HTTPS \u00fczerinden eri\u015fmeleri gerekti\u011fini bildiren bir g\u00fcvenlik ba\u015fl\u0131\u011f\u0131d\u0131r. Bu, kullan\u0131c\u0131lar\u0131n sitenize yanl\u0131\u015fl\u0131kla HTTP \u00fczerinden eri\u015fmesini engeller ve potansiyel man-in-the-middle sald\u0131r\u0131lar\u0131na kar\u015f\u0131 koruma sa\u011flar. Ayr\u0131ca, taray\u0131c\u0131lar\u0131n sitenizi do\u011frudan HTTPS \u00fczerinden y\u00fcklemesini sa\u011flayarak performans\u0131 art\u0131r\u0131r. HSTS, web g\u00fcvenli\u011fi i\u00e7in kritik bir bile\u015fendir ve HTTP\/2 kullanan t\u00fcm siteler i\u00e7in \u015fiddetle tavsiye edilir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, Nginx&#8217;i Ubuntu 18.04 sunucusu \u00fczerinde HTTP\/2 deste\u011fiyle nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011frendiniz. S\u00fcre\u00e7, sistemin g\u00fcncellenmesinden Nginx&#8217;in kurulmas\u0131na, Let&#8217;s Encrypt ile \u00fccretsiz bir SSL\/TLS sertifikas\u0131 al\u0131nmas\u0131na ve Nginx yap\u0131land\u0131rmas\u0131n\u0131n HTTP\/2 ve ek g\u00fcvenlik \u00f6nlemleri i\u00e7in optimize edilmesine kadar uzand\u0131. Son olarak, yap\u0131land\u0131rman\u0131z\u0131 do\u011frulama y\u00f6ntemlerini ve web sitenizin performans\u0131n\u0131 ve g\u00fcvenli\u011fini daha da art\u0131racak ek ipu\u00e7lar\u0131n\u0131 inceledik.<\/p>\n<p>HTTP\/2&#8217;nin sa\u011flad\u0131\u011f\u0131 performans avantajlar\u0131 (multiplexing, ba\u015fl\u0131k s\u0131k\u0131\u015ft\u0131rma, sunucu itme) ve SSL\/TLS&#8217;nin sa\u011flad\u0131\u011f\u0131 g\u00fcvenlik (veri \u015fifreleme, kimlik do\u011frulama), modern web uygulamalar\u0131 i\u00e7in vazge\u00e7ilmezdir. Bu kurulum, kullan\u0131c\u0131lar\u0131n\u0131za daha h\u0131zl\u0131, daha g\u00fcvenli ve daha keyifli bir web deneyimi sunman\u0131n temelini olu\u015fturur.<\/p>\n<p>Nginx ve HTTP\/2 kombinasyonu, web sitenizin gelece\u011fe haz\u0131r olmas\u0131n\u0131 sa\u011flarken, Ubuntu 18.04&#8217;\u00fcn LTS (Uzun S\u00fcreli Destek) \u00f6zelli\u011fi sayesinde stabil ve g\u00fcvenilir bir platform \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131zdan emin olursunuz. Web teknolojileri s\u00fcrekli geli\u015fti\u011fi i\u00e7in, Nginx yap\u0131land\u0131rman\u0131z\u0131 ve SSL\/TLS ayarlar\u0131n\u0131z\u0131 d\u00fczenli olarak g\u00f6zden ge\u00e7irmeniz ve g\u00fcncel en iyi uygulamalar\u0131 takip etmeniz \u00f6nemlidir. Bu sayede, web sitenizin performans\u0131n\u0131 ve g\u00fcvenli\u011fini her zaman en \u00fcst d\u00fczeyde tutabilirsiniz.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Nginx&#8217;i Ubuntu 18.04 \u00dczerinde HTTP\/2 Deste\u011fi ile Kurulumu\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla geli\u015fen dijital d\u00fcnyas\u0131nda, web sitelerinin performans\u0131 v","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-35388","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Nginx&#039;i Ubuntu 18.04 \u00dczerinde HTTP\/2 Deste\u011fi ile Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Nginx&#039;i Ubuntu 18.04 \u00dczerinde HTTP\/2 Deste\u011fi ile Kurulumu\" \/>\n<meta property=\"og:description\" content=\"Nginx&#039;i Ubuntu 18.04 \u00dczerinde HTTP\/2 Deste\u011fi ile Kurulumu Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla geli\u015fen dijital d\u00fcnyas\u0131nda, web sitelerinin performans\u0131 v\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-29T00:40:49+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"22 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Nginx&#8217;i Ubuntu 18.04 \u00dczerinde HTTP\/2 Deste\u011fi ile Kurulumu\",\"datePublished\":\"2025-11-29T00:40:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/\"},\"wordCount\":3794,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/\",\"name\":\"Nginx'i Ubuntu 18.04 \u00dczerinde HTTP\/2 Deste\u011fi ile Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-29T00:40:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Nginx&#8217;i Ubuntu 18.04 \u00dczerinde HTTP\/2 Deste\u011fi ile Kurulumu\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Nginx'i Ubuntu 18.04 \u00dczerinde HTTP\/2 Deste\u011fi ile Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/","og_locale":"tr_TR","og_type":"article","og_title":"Nginx'i Ubuntu 18.04 \u00dczerinde HTTP\/2 Deste\u011fi ile Kurulumu","og_description":"Nginx'i Ubuntu 18.04 \u00dczerinde HTTP\/2 Deste\u011fi ile Kurulumu Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla geli\u015fen dijital d\u00fcnyas\u0131nda, web sitelerinin performans\u0131 v","og_url":"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-29T00:40:49+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"22 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Nginx&#8217;i Ubuntu 18.04 \u00dczerinde HTTP\/2 Deste\u011fi ile Kurulumu","datePublished":"2025-11-29T00:40:49+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/"},"wordCount":3794,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/","url":"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/","name":"Nginx'i Ubuntu 18.04 \u00dczerinde HTTP\/2 Deste\u011fi ile Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-29T00:40:49+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/nginxi-ubuntu-18-04-uzerinde-http-2-destegi-ile-kurulumu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Nginx&#8217;i Ubuntu 18.04 \u00dczerinde HTTP\/2 Deste\u011fi ile Kurulumu"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35388","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=35388"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35388\/revisions"}],"predecessor-version":[{"id":35389,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35388\/revisions\/35389"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=35388"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=35388"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=35388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}