{"id":34482,"date":"2025-11-17T06:40:56","date_gmt":"2025-11-17T03:40:56","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=34482"},"modified":"2025-11-17T06:40:56","modified_gmt":"2025-11-17T03:40:56","slug":"rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/","title":{"rendered":"Rocky Linux 9 \u00dczerine Nginx Kurulumu: Kapsaml\u0131 Bir Rehber"},"content":{"rendered":"<p><body><\/p>\n<h2>Rocky Linux 9 \u00dczerine Nginx Kurulumu: Kapsaml\u0131 Bir Rehber<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>\u0130nternet d\u00fcnyas\u0131n\u0131n omurgas\u0131n\u0131 olu\u015fturan web sunucular\u0131, modern uygulamalar\u0131n ve web sitelerinin temelini olu\u015fturur. Bu alanda \u00f6ne \u00e7\u0131kan en g\u00fc\u00e7l\u00fc ve esnek ara\u00e7lardan biri de Nginx&#8217;tir (Engine-X olarak telaffuz edilir). Y\u00fcksek performans, d\u00fc\u015f\u00fck kaynak t\u00fcketimi ve e\u015f zamanl\u0131 ba\u011flant\u0131lar\u0131 etkin bir \u015fekilde y\u00f6netme yetene\u011fi sayesinde Nginx, d\u00fcnya genelindeki en yo\u011fun trafikli sitelerin ve uygulamalar\u0131n tercihi haline gelmi\u015ftir. Ters proxy, y\u00fck dengeleyici, HTTP \u00f6nbelle\u011fi ve hatta basit bir e-posta proxy&#8217;si olarak bile kullan\u0131labilen Nginx, sundu\u011fu \u00e7ok y\u00f6nl\u00fcl\u00fckle geli\u015ftiricilerin ve sistem y\u00f6neticilerinin vazge\u00e7ilmezidir.<\/p>\n<p>Rocky Linux 9 ise, Red Hat Enterprise Linux (RHEL) tabanl\u0131, topluluk odakl\u0131, kurumsal s\u0131n\u0131f bir i\u015fletim sistemidir. CentOS&#8217;un yerini alarak, kararl\u0131l\u0131k, g\u00fcvenlik ve uzun s\u00fcreli destek arayan kullan\u0131c\u0131lar i\u00e7in sa\u011flam bir alternatif sunar. Bu kombinasyon, yani Nginx&#8217;in g\u00fcc\u00fc ile Rocky Linux&#8217;un kararl\u0131l\u0131\u011f\u0131, web uygulamalar\u0131n\u0131z i\u00e7in son derece g\u00fcvenilir ve y\u00fcksek performansl\u0131 bir altyap\u0131 olu\u015fturman\u0131n anahtar\u0131d\u0131r.<\/p>\n<p>Bu kapsaml\u0131 rehberde, Rocky Linux 9 sunucunuza Nginx&#8217;i nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, temel yap\u0131land\u0131rmalar\u0131 nas\u0131l yapaca\u011f\u0131n\u0131z\u0131, g\u00fcvenlik duvar\u0131n\u0131 nas\u0131l ayarlayaca\u011f\u0131n\u0131z\u0131 ve hatta SSL\/TLS sertifikalar\u0131n\u0131 (HTTPS) nas\u0131l etkinle\u015ftirece\u011finizi ad\u0131m ad\u0131m \u00f6\u011freneceksiniz. Amac\u0131m\u0131z, hem yeni ba\u015flayanlar hem de deneyimli kullan\u0131c\u0131lar i\u00e7in anla\u015f\u0131l\u0131r, eksiksiz ve pratik bir kurulum s\u00fcreci sunmakt\u0131r.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>Nginx kurulumuna ba\u015flamadan \u00f6nce, a\u015fa\u011f\u0131daki \u00f6n gereksinimlerin kar\u015f\u0131land\u0131\u011f\u0131ndan emin olman\u0131z \u00f6nemlidir:<\/p>\n<p>*   <strong>Rocky Linux 9 Kurulu Bir Sunucu:<\/strong> Nginx&#8217;i kuraca\u011f\u0131n\u0131z aktif bir Rocky Linux 9 sunucunuz olmal\u0131d\u0131r. Bu, fiziksel bir sunucu, sanal makine (VM) veya bir bulut sunucusu (VPS) olabilir.<br \/>\n*   <strong><code>sudo<\/code> Yetkilerine Sahip Bir Kullan\u0131c\u0131:<\/strong> Kurulum ve yap\u0131land\u0131rma ad\u0131mlar\u0131 i\u00e7in <code>sudo<\/code> (superuser do) yetkilerine sahip, standart bir kullan\u0131c\u0131 hesab\u0131na ihtiyac\u0131n\u0131z olacakt\u0131r. G\u00fcvenlik nedeniyle root kullan\u0131c\u0131s\u0131 olarak do\u011frudan i\u015flem yapmak yerine <code>sudo<\/code> kullan\u0131lmas\u0131 \u00f6nerilir.<br \/>\n*   <strong>\u0130nternet Ba\u011flant\u0131s\u0131:<\/strong> Sunucunuzun paketleri indirebilmesi i\u00e7in aktif bir internet ba\u011flant\u0131s\u0131na sahip olmas\u0131 gerekmektedir.<br \/>\n*   <strong>Temel Linux Komut Sat\u0131r\u0131 Bilgisi:<\/strong> Terminalde komut \u00e7al\u0131\u015ft\u0131rma, dizinler aras\u0131nda gezinme ve dosya d\u00fczenleme gibi temel Linux komutlar\u0131na a\u015fina olman\u0131z beklenir.<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131 (FirewallD):<\/strong> Rocky Linux 9 varsay\u0131lan olarak FirewallD g\u00fcvenlik duvar\u0131n\u0131 kullan\u0131r. Nginx&#8217;in d\u0131\u015far\u0131dan eri\u015filebilir olmas\u0131 i\u00e7in gerekli portlar\u0131 (HTTP 80, HTTPS 443) a\u00e7man\u0131z gerekecektir. Bu ad\u0131m\u0131 ilerleyen b\u00f6l\u00fcmlerde detayl\u0131 olarak ele alaca\u011f\u0131z.<br \/>\n*   <strong>SELinux:<\/strong> Rocky Linux 9&#8217;da g\u00fcvenlik i\u00e7in etkin olan SELinux, bazen web sunucular\u0131n\u0131n dosyalara eri\u015fimini k\u0131s\u0131tlayabilir. Varsay\u0131lan kurulumlar genellikle sorunsuz \u00e7al\u0131\u015fsa da, \u00f6zel yap\u0131land\u0131rmalar veya dizinler kullan\u0131ld\u0131\u011f\u0131nda SELinux politikalar\u0131n\u0131n ayarlanmas\u0131 gerekebilir. Bu rehberde, varsay\u0131lan yap\u0131land\u0131rman\u0131n yeterli olaca\u011f\u0131 varsay\u0131lmaktad\u0131r.<\/p>\n<h3>Sistem G\u00fcncellemesi<\/h3>\n<p>Herhangi bir yeni yaz\u0131l\u0131m kurulumuna ba\u015flamadan \u00f6nce, sisteminizin g\u00fcncel oldu\u011fundan emin olmak iyi bir pratiktir. Bu, olas\u0131 ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 \u00f6nler ve en son g\u00fcvenlik yamalar\u0131na sahip olman\u0131z\u0131 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 dnf update -y\nsudo dnf upgrade -y<\/code><\/pre>\n<p>*   <code>sudo dnf update -y<\/code>: Sistemdeki t\u00fcm y\u00fckl\u00fc paketlerin meta verilerini g\u00fcnceller ve yeni s\u00fcr\u00fcmleri indirir. <code>-y<\/code> bayra\u011f\u0131, t\u00fcm sorulara otomatik olarak &#8220;evet&#8221; yan\u0131t\u0131 verir.<br \/>\n*   <code>sudo dnf upgrade -y<\/code>: Mevcut paketleri yeni s\u00fcr\u00fcmlerine y\u00fckseltir.<\/p>\n<p>G\u00fcncelleme i\u015flemi tamamland\u0131ktan sonra, \u00e7ekirdek g\u00fcncellemeleri yap\u0131ld\u0131ysa veya sistem yeniden ba\u015flatmay\u0131 gerektiriyorsa, sunucunuzu yeniden ba\u015flatman\u0131z \u00f6nerilir:<\/p>\n<pre><code class=\"language-bash\">sudo reboot<\/code><\/pre>\n<p>Sunucunuz yeniden ba\u015flad\u0131ktan sonra, SSH veya konsol arac\u0131l\u0131\u011f\u0131yla tekrar oturum a\u00e7abilirsiniz.<\/p>\n<h3>Nginx Kurulum Y\u00f6ntemleri<\/h3>\n<p>Rocky Linux 9 \u00fczerine Nginx kurman\u0131n iki ana y\u00f6ntemi vard\u0131r: Rocky Linux&#8217;un varsay\u0131lan DNF depolar\u0131ndan kurulum veya Nginx&#8217;in resmi depolar\u0131ndan kurulum. Her iki y\u00f6ntemin de avantajlar\u0131 ve dezavantajlar\u0131 bulunmaktad\u0131r.<\/p>\n<h4>Rocky Linux Varsay\u0131lan Depolar\u0131ndan Kurulum (\u00d6nerilen)<\/h4>\n<p>Bu y\u00f6ntem, \u00e7o\u011fu kullan\u0131c\u0131 i\u00e7in en kolay ve en kararl\u0131 se\u00e7enektir. Rocky Linux&#8217;un varsay\u0131lan depolar\u0131, test edilmi\u015f, g\u00fcvenli ve sistemle iyi entegre edilmi\u015f Nginx paketlerini sunar. Genellikle en son kararl\u0131 s\u00fcr\u00fcm olmasa da, g\u00fcvenlik yamalar\u0131 d\u00fczenli olarak sa\u011flan\u0131r.<\/p>\n<p>1.  <strong>Nginx Paketini Kurma:<\/strong><br \/>\n    A\u015fa\u011f\u0131daki komutu kullanarak Nginx&#8217;i kurun:<\/p>\n<pre><code class=\"language-bash\">sudo dnf install nginx -y<\/code><\/pre>\n<p>    Bu komut, Nginx paketini ve gerekli t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 kuracakt\u0131r.<\/p>\n<p>2.  <strong>Nginx Servisini Ba\u015flatma ve Etkinle\u015ftirme:<\/strong><br \/>\n    Kurulum tamamland\u0131ktan sonra, Nginx servisini ba\u015flatman\u0131z ve sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131 i\u00e7in etkinle\u015ftirmeniz gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start nginx\n    sudo systemctl enable nginx<\/code><\/pre>\n<p>3.  <strong>Nginx Servisinin Durumunu Kontrol Etme:<\/strong><br \/>\n    Nginx&#8217;in do\u011fru bir \u015fekilde \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status nginx<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131da <code>active (running)<\/code> ifadesini g\u00f6rmelisiniz.<\/p>\n<p>4.  <strong>Kurulumu Do\u011frulama:<\/strong><br \/>\n    Nginx&#8217;in ba\u015far\u0131l\u0131 bir \u015fekilde kuruldu\u011funu ve \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in, sunucunuzun IP adresini veya alan ad\u0131n\u0131 bir web taray\u0131c\u0131s\u0131na yazarak eri\u015fmeyi deneyin. Varsay\u0131lan bir &#8220;Nginx Test Page&#8221; veya &#8220;Welcome to Nginx!&#8221; sayfas\u0131 g\u00f6rmelisiniz.<\/p>\n<p>    Ayr\u0131ca, terminalden Nginx s\u00fcr\u00fcm\u00fcn\u00fc kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">nginx -v<\/code><\/pre>\n<h4>Nginx Resmi Depolar\u0131ndan Kurulum (En Son S\u00fcr\u00fcmler \u0130\u00e7in)<\/h4>\n<p>E\u011fer Nginx&#8217;in en son \u00f6zelliklerine veya belirli bir s\u00fcr\u00fcm\u00fcne ihtiyac\u0131n\u0131z varsa, Nginx&#8217;in resmi depolar\u0131n\u0131 kullanman\u0131z gerekebilir. Nginx, iki ana depo sunar: <code>stable<\/code> (kararl\u0131) ve <code>mainline<\/code> (ana hat). <code>mainline<\/code> deposu en son \u00f6zellikleri i\u00e7erirken, <code>stable<\/code> deposu daha az s\u0131kl\u0131kla g\u00fcncellenir ancak daha fazla test edilmi\u015f ve kararl\u0131d\u0131r.<\/p>\n<p>1.  <strong>Nginx GPG Anahtar\u0131n\u0131 \u0130\u00e7e Aktarma:<\/strong><br \/>\n    Nginx paketlerinin orijinalli\u011fini do\u011frulamak i\u00e7in Nginx&#8217;in imzalama anahtar\u0131n\u0131 i\u00e7e aktarman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo rpm --import https:\/\/nginx.org\/keys\/nginx_signing.key<\/code><\/pre>\n<p>2.  <strong>Nginx Deposunu Yap\u0131land\u0131rma:<\/strong><br \/>\n    Nginx deposunu Rocky Linux&#8217;a eklemek i\u00e7in <code>\/etc\/yum.repos.d\/nginx.repo<\/code> ad\u0131nda yeni bir dosya olu\u015fturman\u0131z gerekir. Bu dosyay\u0131 bir metin d\u00fczenleyici ile a\u00e7\u0131n (\u00f6rne\u011fin <code>nano<\/code> veya <code>vi<\/code>):<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/yum.repos.d\/nginx.repo<\/code><\/pre>\n<p>    Dosyan\u0131n i\u00e7ine a\u015fa\u011f\u0131daki i\u00e7eri\u011fi yap\u0131\u015ft\u0131r\u0131n. <code>stable<\/code> s\u00fcr\u00fcm i\u00e7in:<\/p>\n<pre><code class=\"language-ini\">[nginx-stable]\n    name=nginx stable repo\n    baseurl=http:\/\/nginx.org\/packages\/rocky\/$releasever\/$basearch\/\n    gpgcheck=1\n    enabled=1\n    gpgkey=https:\/\/nginx.org\/keys\/nginx_signing.key\n    module_hotfixes=true<\/code><\/pre>\n<p>    Veya <code>mainline<\/code> s\u00fcr\u00fcm i\u00e7in (en son \u00f6zellikler):<\/p>\n<pre><code class=\"language-ini\">[nginx-mainline]\n    name=nginx mainline repo\n    baseurl=http:\/\/nginx.org\/packages\/mainline\/rocky\/$releasever\/$basearch\/\n    gpgcheck=1\n    enabled=1\n    gpgkey=https:\/\/nginx.org\/keys\/nginx_signing.key\n    module_hotfixes=true<\/code><\/pre>\n<p>    Dosyay\u0131 kaydedin ve kapat\u0131n (nano i\u00e7in <code>Ctrl+O<\/code>, <code>Enter<\/code>, <code>Ctrl+X<\/code>).<\/p>\n<p>3.  <strong>Nginx Paketini Kurma:<\/strong><br \/>\n    Depo eklendikten sonra, Nginx&#8217;i kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo dnf install nginx -y<\/code><\/pre>\n<p>    E\u011fer Rocky Linux&#8217;un varsay\u0131lan depolar\u0131ndan zaten bir Nginx s\u00fcr\u00fcm\u00fc kuruluysa, DNF size mevcut s\u00fcr\u00fcm\u00fc Nginx resmi deposundaki s\u00fcr\u00fcmle de\u011fi\u015ftirmeyi teklif edebilir. Onaylay\u0131n.<\/p>\n<p>4.  <strong>Nginx Servisini Ba\u015flatma ve Etkinle\u015ftirme:<\/strong><br \/>\n    T\u0131pk\u0131 varsay\u0131lan depodan kurulumda oldu\u011fu gibi, Nginx servisini ba\u015flat\u0131n ve etkinle\u015ftirin:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start nginx\n    sudo systemctl enable nginx<\/code><\/pre>\n<p>5.  <strong>Nginx Servisinin Durumunu Kontrol Etme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl status nginx<\/code><\/pre>\n<p>6.  <strong>Kurulumu Do\u011frulama:<\/strong><br \/>\n    Sunucunuzun IP adresini veya alan ad\u0131n\u0131 bir web taray\u0131c\u0131s\u0131na yazarak Nginx&#8217;in varsay\u0131lan sayfas\u0131n\u0131 kontrol edin.<\/p>\n<pre><code class=\"language-bash\">nginx -v<\/code><\/pre>\n<p>    Bu komut, Nginx&#8217;in resmi depodan kurulan s\u00fcr\u00fcm\u00fcn\u00fc g\u00f6sterecektir.<\/p>\n<h3>G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131 (FirewallD)<\/h3>\n<p>Nginx ba\u015far\u0131l\u0131 bir \u015fekilde kurulsa ve \u00e7al\u0131\u015f\u0131yor olsa bile, d\u0131\u015f d\u00fcnyadan eri\u015filebilir olmas\u0131 i\u00e7in Rocky Linux&#8217;un g\u00fcvenlik duvar\u0131 (FirewallD) \u00fczerinde gerekli portlar\u0131n a\u00e7\u0131lmas\u0131 gerekmektedir. Nginx varsay\u0131lan olarak HTTP trafi\u011fi i\u00e7in 80 numaral\u0131 portu ve HTTPS trafi\u011fi i\u00e7in 443 numaral\u0131 portu kullan\u0131r.<\/p>\n<p>1.  <strong>HTTP (80) Portunu A\u00e7ma:<\/strong><br \/>\n    HTTP trafi\u011fine izin vermek i\u00e7in 80 numaral\u0131 portu g\u00fcvenlik duvar\u0131na kal\u0131c\u0131 olarak ekleyin:<\/p>\n<pre><code class=\"language-bash\">sudo firewall-cmd --permanent --add-service=http<\/code><\/pre>\n<p>2.  <strong>HTTPS (443) Portunu A\u00e7ma (SSL\/TLS kullanmay\u0131 planl\u0131yorsan\u0131z):<\/strong><br \/>\n    E\u011fer ileride SSL\/TLS sertifikas\u0131 kurarak HTTPS kullanmay\u0131 planl\u0131yorsan\u0131z, 443 numaral\u0131 portu da a\u00e7man\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo firewall-cmd --permanent --add-service=https<\/code><\/pre>\n<p>3.  <strong>G\u00fcvenlik Duvar\u0131n\u0131 Yeniden Y\u00fckleme:<\/strong><br \/>\n    Yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in g\u00fcvenlik duvar\u0131n\u0131 yeniden y\u00fckleyin:<\/p>\n<pre><code class=\"language-bash\">sudo firewall-cmd --reload<\/code><\/pre>\n<p>4.  <strong>A\u00e7\u0131k Portlar\u0131 Kontrol Etme:<\/strong><br \/>\n    A\u015fa\u011f\u0131daki komutla g\u00fcvenlik duvar\u0131n\u0131z\u0131n hangi servis ve portlara izin verdi\u011fini kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo firewall-cmd --list-all<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131da <code>services: cockpit dhcpv6-client http https ssh<\/code> gibi bir liste g\u00f6rmelisiniz. <code>http<\/code> ve <code>https<\/code> servislerinin listede olmas\u0131, Nginx&#8217;in web trafi\u011fini alabilece\u011fi anlam\u0131na gelir.<\/p>\n<h3>Nginx Temel Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Nginx&#8217;in ana yap\u0131land\u0131rma dosyas\u0131 <code>\/etc\/nginx\/nginx.conf<\/code> adresinde bulunur. Ancak, genellikle sanal ana bilgisayarlar (virtual hosts) veya &#8220;server block&#8221; ad\u0131 verilen siteye \u00f6zel yap\u0131land\u0131rmalar <code>\/etc\/nginx\/conf.d\/<\/code> dizini i\u00e7indeki ayr\u0131 dosyalarda tutulur. Bu, yap\u0131land\u0131rmay\u0131 daha d\u00fczenli ve y\u00f6netilebilir hale getirir.<\/p>\n<p>Varsay\u0131lan Nginx kurulumu, <code>\/etc\/nginx\/nginx.conf<\/code> dosyas\u0131nda <code>\/etc\/nginx\/conf.d\/*.conf<\/code> yolundaki t\u00fcm <code>.conf<\/code> uzant\u0131l\u0131 dosyalar\u0131 otomatik olarak dahil eden bir sat\u0131r i\u00e7erir. Bu nedenle, yeni siteler i\u00e7in yap\u0131land\u0131rma dosyalar\u0131n\u0131z\u0131 bu dizin i\u00e7inde olu\u015fturman\u0131z en iyi yakla\u015f\u0131md\u0131r.<\/p>\n<h4>\u00d6rnek Bir Sanal Ana Bilgisayar (Server Block) Olu\u015fturma<\/h4>\n<p>Kendi web siteniz i\u00e7in \u00f6zel bir yap\u0131land\u0131rma olu\u015fturmak \u00fczere bir &#8220;server block&#8221; tan\u0131mlayal\u0131m. Bu \u00f6rnekte <code>example.com<\/code> alan ad\u0131n\u0131 kullanaca\u011f\u0131z.<\/p>\n<p>1.  <strong>Web Sitesi K\u00f6k Dizinini Olu\u015fturma:<\/strong><br \/>\n    Web sitenizin dosyalar\u0131n\u0131 bar\u0131nd\u0131racak bir dizin olu\u015fturun. Genellikle <code>\/var\/www\/<\/code> alt\u0131nda alan ad\u0131n\u0131za \u00f6zel bir dizin olu\u015fturmak iyi bir pratiktir:<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/var\/www\/example.com\/html<\/code><\/pre>\n<p>2.  <strong>Dizin \u0130zinlerini Ayarlama:<\/strong><br \/>\n    Nginx kullan\u0131c\u0131s\u0131n\u0131n (genellikle <code>nginx<\/code>) bu dizine eri\u015febilmesi i\u00e7in gerekli izinleri ayarlay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo chown -R nginx:nginx \/var\/www\/example.com\n    sudo chmod -R 755 \/var\/www\/example.com<\/code><\/pre>\n<p>    Bu komutlar, dizinin sahipli\u011fini <code>nginx<\/code> kullan\u0131c\u0131s\u0131na ve grubuna verir ve <code>755<\/code> izinlerini ayarlar, bu da Nginx&#8217;in dosyalar\u0131 okuyabilmesini ve dizinlere girebilmesini sa\u011flar.<\/p>\n<p>3.  <strong>Basit Bir HTML Test Sayfas\u0131 Olu\u015fturma:<\/strong><br \/>\n    Web sunucunuzun do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 test etmek i\u00e7in bu dizine basit bir <code>index.html<\/code> dosyas\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/var\/www\/example.com\/html\/index.html<\/code><\/pre>\n<p>    Dosyan\u0131n i\u00e7ine a\u015fa\u011f\u0131daki i\u00e7eri\u011fi yap\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-html\"><!DOCTYPE html>\n    <html>\n    <head>\n        <title>Nginx Test Sayfas\u0131<\/title>\n        <style>\n            body { font-family: Arial, sans-serif; text-align: center; margin-top: 50px; }\n            h1 { color: #333; }\n            p { color: #666; }\n        <\/style>\n    <\/head>\n    <body>\n        \n        <p>Bu, example.com i\u00e7in \u00f6zel bir test sayfas\u0131d\u0131r.<\/p>\n        <p>Yap\u0131land\u0131rma ba\u015far\u0131yla tamamland\u0131.<\/p>\n    <\/body>\n    <\/html><\/code><\/pre>\n<p>    Kaydedin ve kapat\u0131n.<\/p>\n<p>4.  <strong>Nginx Server Block Yap\u0131land\u0131rma Dosyas\u0131 Olu\u015fturma:<\/strong><br \/>\n    <code>example.com<\/code> i\u00e7in bir Nginx yap\u0131land\u0131rma dosyas\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/conf.d\/example.com.conf<\/code><\/pre>\n<p>    Dosyan\u0131n i\u00e7ine a\u015fa\u011f\u0131daki i\u00e7eri\u011fi yap\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-nginx\">server {\n        listen 80;\n        listen [::]:80; # IPv6 deste\u011fi i\u00e7in\n\n        server_name example.com www.example.com; # Alan ad\u0131n\u0131z\u0131 buraya yaz\u0131n\n\n        root \/var\/www\/example.com\/html; # Web sitesi dosyalar\u0131n\u0131z\u0131n k\u00f6k dizini\n        index index.html index.htm index.nginx-debian.html; # Varsay\u0131lan dizin dosyalar\u0131\n\n        location \/ {\n            try_files $uri $uri\/ =404; # Dosya bulunamazsa 404 d\u00f6nd\u00fcr\n        }\n\n        # Hata sayfalar\u0131 i\u00e7in \u00f6zel yap\u0131land\u0131rma (iste\u011fe ba\u011fl\u0131)\n        error_page 500 502 503 504 \/50x.html;\n        location = \/50x.html {\n            root \/usr\/share\/nginx\/html; # Nginx'in varsay\u0131lan hata sayfas\u0131 dizini\n        }\n\n        # Log dosyalar\u0131\n        access_log \/var\/log\/nginx\/example.com_access.log;\n        error_log \/var\/log\/nginx\/example.com_error.log;\n    }<\/code><\/pre>\n<p>    *   <code>listen 80;<\/code>: Nginx&#8217;in 80 numaral\u0131 porttan (HTTP) gelen ba\u011flant\u0131lar\u0131 dinlemesini sa\u011flar.<br \/>\n    *   <code>server_name example.com www.example.com;<\/code>: Bu server block&#8217;un hangi alan adlar\u0131 i\u00e7in ge\u00e7erli oldu\u011funu belirtir. Kendi alan adlar\u0131n\u0131zla de\u011fi\u015ftirin.<br \/>\n    *   <code>root \/var\/www\/example.com\/html;<\/code>: Web sitenizin dosyalar\u0131n\u0131n bulundu\u011fu k\u00f6k dizini tan\u0131mlar.<br \/>\n    *   <code>index index.html ...;<\/code>: Bir dizine eri\u015fildi\u011finde Nginx&#8217;in arayaca\u011f\u0131 varsay\u0131lan dosya isimlerini belirtir.<br \/>\n    *   <code>location \/ { ... }<\/code>: T\u00fcm istekler i\u00e7in genel bir kural tan\u0131mlar. <code>try_files<\/code> y\u00f6nergesi, gelen iste\u011fin \u00f6nce bir dosya, sonra bir dizin olarak aranmas\u0131n\u0131 sa\u011flar. Bulunamazsa 404 hatas\u0131 d\u00f6nd\u00fcr\u00fcl\u00fcr.<br \/>\n    *   <code>access_log<\/code> ve <code>error_log<\/code>: Bu server block&#8217;a ait eri\u015fim ve hata g\u00fcnl\u00fcklerinin nerede tutulaca\u011f\u0131n\u0131 belirtir.<\/p>\n<p>    Kaydedin ve kapat\u0131n.<\/p>\n<p>5.  <strong>Nginx Yap\u0131land\u0131rmas\u0131n\u0131 Kontrol Etme:<\/strong><br \/>\n    Yeni yap\u0131land\u0131rman\u0131z\u0131 etkinle\u015ftirmeden \u00f6nce, s\u00f6zdizimi hatalar\u0131n\u0131 kontrol etmek \u00e7ok \u00f6nemlidir:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t<\/code><\/pre>\n<p>    E\u011fer her \u015fey do\u011fruysa, 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\n    nginx: configuration file \/etc\/nginx\/nginx.conf test is successful<\/code><\/pre>\n<p>    Herhangi bir hata varsa, \u00e7\u0131kt\u0131da belirtilen sat\u0131r numaralar\u0131na bakarak <code>example.com.conf<\/code> dosyan\u0131z\u0131 d\u00fczeltin.<\/p>\n<p>6.  <strong>Nginx Servisini Yeniden Y\u00fckleme:<\/strong><br \/>\n    Yap\u0131land\u0131rma hatas\u0131 yoksa, Nginx servisini yeniden y\u00fckleyerek yeni yap\u0131land\u0131rman\u0131z\u0131 etkinle\u015ftirin:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl reload nginx<\/code><\/pre>\n<p>    Bu komut, Nginx&#8217;in kesinti olmadan yeni yap\u0131land\u0131rmay\u0131 y\u00fcklemesini sa\u011flar. E\u011fer b\u00fcy\u00fck bir de\u011fi\u015fiklik yapt\u0131ysan\u0131z veya emin de\u011filseniz <code>sudo systemctl restart nginx<\/code> komutunu da kullanabilirsiniz, ancak bu k\u0131sa bir kesintiye neden olabilir.<\/p>\n<p>7.  <strong>Web Sitesini Taray\u0131c\u0131dan Test Etme:<\/strong><br \/>\n    \u015eimdi bir web taray\u0131c\u0131s\u0131 a\u00e7\u0131n ve <code>http:\/\/example.com<\/code> (veya sunucunuzun IP adresi) adresine gidin. Olu\u015fturdu\u011funuz &#8220;Nginx Rocky Linux 9 \u00dczerinde Ba\u015far\u0131yla \u00c7al\u0131\u015f\u0131yor!&#8221; ba\u015fl\u0131kl\u0131 HTML sayfas\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h3>SSL\/TLS Yap\u0131land\u0131rmas\u0131 (HTTPS)<\/h3>\n<p>G\u00fcn\u00fcm\u00fczde HTTPS (Secure HTTP), web siteleri i\u00e7in bir standart haline gelmi\u015ftir. Kullan\u0131c\u0131 verilerinin g\u00fcvenli\u011fini sa\u011flamak, arama motoru s\u0131ralamalar\u0131n\u0131 iyile\u015ftirmek ve genel olarak profesyonel bir imaj \u00e7izmek i\u00e7in HTTPS kullanmak \u015fiddetle tavsiye edilir. Let&#8217;s Encrypt, \u00fccretsiz ve otomatik SSL\/TLS sertifikalar\u0131 sa\u011flayan pop\u00fcler bir sertifika yetkilisidir. Certbot arac\u0131 ile bu sertifikalar\u0131 kolayca alabilir ve Nginx ile entegre edebilirsiniz.<\/p>\n<p>1.  <strong>EPEL Deposunu Etkinle\u015ftirme:<\/strong><br \/>\n    Certbot paketi genellikle Rocky Linux&#8217;un varsay\u0131lan depolar\u0131nda bulunmaz. Bu nedenle, Extra Packages for Enterprise Linux (EPEL) deposunu etkinle\u015ftirmeniz gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo dnf install epel-release -y<\/code><\/pre>\n<p>2.  <strong>Certbot ve Nginx Eklentisini Y\u00fckleme:<\/strong><br \/>\n    EPEL deposu etkinle\u015ftirildikten sonra, Certbot&#8217;u ve Nginx i\u00e7in gerekli Python eklentisini y\u00fckleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo dnf install certbot python3-certbot-nginx -y<\/code><\/pre>\n<p>3.  <strong>SSL Sertifikas\u0131 Alma:<\/strong><br \/>\n    \u015eimdi Certbot&#8217;u kullanarak alan adlar\u0131n\u0131z i\u00e7in SSL sertifikas\u0131 alabilirsiniz. Certbot, Nginx yap\u0131land\u0131rman\u0131z\u0131 otomatik olarak alg\u0131lar ve HTTPS&#8217;i etkinle\u015ftirecek \u015fekilde g\u00fcnceller.<\/p>\n<pre><code class=\"language-bash\">sudo certbot --nginx -d example.com -d www.example.com<\/code><\/pre>\n<p>    *   <code>--nginx<\/code>: Certbot&#8217;a Nginx ile entegrasyon yapmas\u0131n\u0131 s\u00f6yler.<br \/>\n    *   <code>-d example.com -d www.example.com<\/code>: Sertifikay\u0131 almak istedi\u011finiz alan adlar\u0131n\u0131 belirtir. Kendi alan adlar\u0131n\u0131zla de\u011fi\u015ftirin. Birden fazla alan ad\u0131 i\u00e7in her birini <code>-d<\/code> ile ayr\u0131 ayr\u0131 ekleyebilirsiniz.<\/p>\n<p>    Certbot sizden baz\u0131 bilgiler isteyecektir:<br \/>\n    *   Bir e-posta adresi (yenileme bildirimleri ve g\u00fcvenlik uyar\u0131lar\u0131 i\u00e7in).<br \/>\n    *   Let&#8217;s Encrypt hizmet ko\u015fullar\u0131n\u0131 kabul etmeniz.<br \/>\n    *   E-posta adresinizi EFF (Electronic Frontier Foundation) ile payla\u015fmak isteyip istemedi\u011finiz (iste\u011fe ba\u011fl\u0131).<br \/>\n    *   HTTP trafi\u011fini otomatik olarak HTTPS&#8217;e y\u00f6nlendirmek isteyip istemedi\u011finiz (\u00f6nerilir). <code>2: Redirect<\/code> se\u00e7ene\u011fini se\u00e7in.<\/p>\n<p>    Sertifika alma i\u015flemi ba\u015far\u0131l\u0131 olursa, Certbot size sertifikalar\u0131n nerede sakland\u0131\u011f\u0131n\u0131 ve ne zaman sona erece\u011fini bildiren bir mesaj g\u00f6sterecektir. Ayr\u0131ca Nginx yap\u0131land\u0131rma dosyan\u0131z\u0131 (\u00f6rne\u011fin <code>\/etc\/nginx\/conf.d\/example.com.conf<\/code>) otomatik olarak g\u00fcncelleyerek HTTPS&#8217;i etkinle\u015ftirecek ve HTTP isteklerini HTTPS&#8217;e y\u00f6nlendirecektir.<\/p>\n<p>4.  <strong>Otomatik Yenilemeyi Kontrol Etme:<\/strong><br \/>\n    Let&#8217;s Encrypt sertifikalar\u0131 90 g\u00fcn ge\u00e7erlidir. Certbot, bu sertifikalar\u0131 otomatik olarak yenilemek i\u00e7in bir <code>systemd<\/code> zamanlay\u0131c\u0131s\u0131 veya <code>cron<\/code> g\u00f6revi olu\u015fturur. Yenileme zamanlay\u0131c\u0131s\u0131n\u0131n durumunu kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status certbot-renew.timer<\/code><\/pre>\n<p>    Yenileme i\u015flemini test etmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz (bu komut sertifikalar\u0131 ger\u00e7ekten yenilemez, sadece yenileme s\u00fcrecini sim\u00fcle eder):<\/p>\n<pre><code class=\"language-bash\">sudo certbot renew --dry-run<\/code><\/pre>\n<p>    E\u011fer test ba\u015far\u0131l\u0131 olursa, sertifikalar\u0131n\u0131z\u0131n otomatik olarak yenilenece\u011finden emin olabilirsiniz.<\/p>\n<p>5.  <strong>HTTPS&#8217;i Taray\u0131c\u0131dan Test Etme:<\/strong><br \/>\n    \u015eimdi web taray\u0131c\u0131n\u0131z\u0131 a\u00e7\u0131n ve <code>https:\/\/example.com<\/code> adresine gidin. Web sitenizin g\u00fcvenli bir ba\u011flant\u0131 (genellikle adres \u00e7ubu\u011funda bir kilit simgesi) \u00fczerinden y\u00fcklendi\u011fini g\u00f6rmelisiniz. Ayr\u0131ca, <code>http:\/\/example.com<\/code> adresine gitti\u011finizde otomatik olarak HTTPS&#8217;e y\u00f6nlendirildi\u011finizi de do\u011frulayabilirsiniz.<\/p>\n<h3>Nginx Y\u00f6netim Komutlar\u0131<\/h3>\n<p>Nginx servisini y\u00f6netmek i\u00e7in <code>systemctl<\/code> komutunu kullan\u0131r\u0131z. \u0130\u015fte en s\u0131k kullan\u0131lan komutlar:<\/p>\n<p>*   <strong>Nginx&#8217;i Ba\u015flatma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl start nginx<\/code><\/pre>\n<p>*   <strong>Nginx&#8217;i Durdurma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop nginx<\/code><\/pre>\n<p>*   <strong>Nginx&#8217;i Yeniden Ba\u015flatma:<\/strong> (Servisi durdurup tekrar ba\u015flat\u0131r, k\u0131sa bir kesintiye neden olabilir)<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart nginx<\/code><\/pre>\n<p>*   <strong>Nginx Yap\u0131land\u0131rmas\u0131n\u0131 Yeniden Y\u00fckleme:<\/strong> (Servisi durdurmadan yeni yap\u0131land\u0131rmay\u0131 y\u00fckler, kesintisizdir)<\/p>\n<pre><code class=\"language-bash\">sudo systemctl reload nginx<\/code><\/pre>\n<p>*   <strong>Nginx&#8217;i Sistem Ba\u015flang\u0131c\u0131nda Etkinle\u015ftirme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl enable nginx<\/code><\/pre>\n<p>*   <strong>Nginx&#8217;i Sistem Ba\u015flang\u0131c\u0131nda Devre D\u0131\u015f\u0131 B\u0131rakma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl disable nginx<\/code><\/pre>\n<p>*   <strong>Nginx Servisinin Durumunu Kontrol Etme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl status nginx<\/code><\/pre>\n<p>*   <strong>Nginx Yap\u0131land\u0131rma S\u00f6zdizimini Kontrol Etme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo nginx -t<\/code><\/pre>\n<p>    Bu komut, <code>\/etc\/nginx\/nginx.conf<\/code> dosyas\u0131n\u0131n ve i\u00e7erdi\u011fi di\u011fer yap\u0131land\u0131rma dosyalar\u0131n\u0131n s\u00f6zdizimini kontrol eder. Hata ay\u0131klama i\u00e7in \u00e7ok kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<h3>S\u0131k\u00e7a Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>Nginx kurulumu ve yap\u0131land\u0131rmas\u0131 s\u0131ras\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 yayg\u0131n sorunlar ve bunlar\u0131n \u00e7\u00f6z\u00fcmleri:<\/p>\n<h4>Port \u00c7ak\u0131\u015fmalar\u0131<\/h4>\n<p>*   <strong>Sorun:<\/strong> Nginx ba\u015flam\u0131yor veya web sitesine eri\u015filemiyor ve <code>80<\/code> veya <code>443<\/code> portlar\u0131n\u0131n ba\u015fka bir servis taraf\u0131ndan kullan\u0131ld\u0131\u011f\u0131na dair hata mesajlar\u0131 al\u0131yorsunuz.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Hangi servisin bu portlar\u0131 kulland\u0131\u011f\u0131n\u0131 bulmak i\u00e7in <code>netstat<\/code> veya <code>ss<\/code> komutunu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo netstat -tulnp | grep \":80\\|:443\"<\/code><\/pre>\n<p>    veya<\/p>\n<pre><code class=\"language-bash\">sudo ss -tulnp | grep \":80\\|:443\"<\/code><\/pre>\n<p>    Bu, portlar\u0131 kullanan i\u015flemi ve PID&#8217;yi g\u00f6sterecektir. \u00c7ak\u0131\u015fan servisi durdurman\u0131z veya Nginx&#8217;in ba\u015fka bir port kullanacak \u015fekilde yap\u0131land\u0131rman\u0131z gerekebilir. Apache gibi ba\u015fka bir web sunucusu \u00e7al\u0131\u015f\u0131yorsa, onu durdurman\u0131z veya kald\u0131rman\u0131z gerekebilir (<code>sudo systemctl stop httpd<\/code>, <code>sudo systemctl disable httpd<\/code>).<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 Engeli<\/h4>\n<p>*   <strong>Sorun:<\/strong> Nginx \u00e7al\u0131\u015f\u0131yor ancak web taray\u0131c\u0131n\u0131zdan sunucuya eri\u015femiyorsunuz (ba\u011flant\u0131 zaman a\u015f\u0131m\u0131na u\u011fruyor).<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> FirewallD&#8217;nin Nginx i\u00e7in gerekli portlar\u0131 (80 ve 443) a\u00e7t\u0131\u011f\u0131ndan emin olun. Yukar\u0131daki &#8220;G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131&#8221; b\u00f6l\u00fcm\u00fcndeki ad\u0131mlar\u0131 kontrol edin ve uygulay\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo firewall-cmd --permanent --add-service=http\n    sudo firewall-cmd --permanent --add-service=https\n    sudo firewall-cmd --reload<\/code><\/pre>\n<h4>SELinux K\u0131s\u0131tlamalar\u0131<\/h4>\n<p>*   <strong>Sorun:<\/strong> Nginx \u00e7al\u0131\u015f\u0131yor ancak web sayfalar\u0131 y\u00fcklenmiyor veya <code>403 Forbidden<\/code> hatas\u0131 al\u0131yorsunuz. Nginx hata g\u00fcnl\u00fcklerinde (\u00f6rne\u011fin <code>\/var\/log\/nginx\/error.log<\/code>) &#8220;permission denied&#8221; (izin reddedildi) hatalar\u0131 g\u00f6r\u00fcyorsunuz.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> SELinux, web sunucusunun belirli dizinlere veya dosyalara eri\u015fimini k\u0131s\u0131tlayabilir.<br \/>\n    *   <strong>Ge\u00e7ici olarak devre d\u0131\u015f\u0131 b\u0131rakma (test ama\u00e7l\u0131):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo setenforce 0<\/code><\/pre>\n<p>        Bu komut SELinux&#8217;u ge\u00e7ici olarak <code>Permissive<\/code> moda al\u0131r. E\u011fer sorun d\u00fczelirse, sorun SELinux&#8217;tand\u0131r. Yeniden ba\u015flatma sonras\u0131 tekrar etkinle\u015fir.<br \/>\n    *   <strong>Kal\u0131c\u0131 \u00e7\u00f6z\u00fcm (\u00f6nerilen):<\/strong> Web sitesi dizininize do\u011fru SELinux ba\u011flam\u0131n\u0131 atay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo semanage fcontext -a -t httpd_sys_content_t \"\/var\/www\/example.com(\/.*)?\"\n        sudo restorecon -Rv \/var\/www\/example.com<\/code><\/pre>\n<p>        Bu komutlar, <code>\/var\/www\/example.com<\/code> dizini ve alt\u0131ndaki t\u00fcm dosyalara web i\u00e7eri\u011fi i\u00e7in do\u011fru SELinux ba\u011flam\u0131n\u0131 uygular. Ard\u0131ndan <code>sudo setenforce 1<\/code> komutuyla SELinux&#8217;u tekrar <code>Enforcing<\/code> moda alabilirsiniz.<\/p>\n<h4>Yap\u0131land\u0131rma Hatalar\u0131<\/h4>\n<p>*   <strong>Sorun:<\/strong> <code>sudo nginx -t<\/code> komutu hata veriyor veya Nginx servisi ba\u015flam\u0131yor.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> <code>nginx -t<\/code> komutunun \u00e7\u0131kt\u0131s\u0131n\u0131 dikkatlice inceleyin. Hata mesajlar\u0131 genellikle hangi dosyada ve hangi sat\u0131rda hata oldu\u011funu belirtir. Yap\u0131land\u0131rma dosyan\u0131zdaki s\u00f6zdizimi hatalar\u0131n\u0131 (noktal\u0131 virg\u00fcl eksikli\u011fi, yanl\u0131\u015f direktifler vb.) d\u00fczeltin. \u00d6rne\u011fin, bir <code>server_name<\/code> direktifinde <code>example.com;<\/code> yerine <code>example.com<\/code> yazmak bir hataya neden olabilir.<\/p>\n<h4>\u0130zin Hatalar\u0131 (Dosya ve Dizin \u0130zinleri)<\/h4>\n<p>*   <strong>Sorun:<\/strong> Nginx <code>403 Forbidden<\/code> hatas\u0131 veriyor veya dosyalar\u0131 bulam\u0131yor, ancak SELinux&#8217;tan emin de\u011filsiniz.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Nginx kullan\u0131c\u0131s\u0131n\u0131n (genellikle <code>nginx<\/code>) web sitesi dosyalar\u0131na ve dizinlerine okuma ve y\u00fcr\u00fctme izinlerine sahip oldu\u011fundan emin olun.<br \/>\n    *   Web sitesi k\u00f6k dizini i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo chown -R nginx:nginx \/var\/www\/example.com\n        sudo chmod -R 755 \/var\/www\/example.com<\/code><\/pre>\n<p>    *   Tek tek dosyalar i\u00e7in: Nginx&#8217;in okumas\u0131 gereken t\u00fcm dosyalar\u0131n <code>nginx<\/code> kullan\u0131c\u0131s\u0131 taraf\u0131ndan okunabilir oldu\u011fundan emin olun (\u00f6rne\u011fin <code>chmod 644 index.html<\/code>).<\/p>\n<h4>Log Dosyalar\u0131<\/h4>\n<p>*   Nginx&#8217;in sorunlar\u0131n\u0131 gidermek i\u00e7in log dosyalar\u0131n\u0131 kontrol etmek \u00f6nemlidir.<br \/>\n    *   <strong>Eri\u015fim g\u00fcnl\u00fckleri:<\/strong> <code>\/var\/log\/nginx\/access.log<\/code> (veya server block&#8217;unuzda tan\u0131mlad\u0131\u011f\u0131n\u0131z \u00f6zel log dosyas\u0131)<br \/>\n    *   <strong>Hata g\u00fcnl\u00fckleri:<\/strong> <code>\/var\/log\/nginx\/error.log<\/code> (veya server block&#8217;unuzda tan\u0131mlad\u0131\u011f\u0131n\u0131z \u00f6zel log dosyas\u0131)<br \/>\n    *   Bu dosyalar\u0131 <code>tail -f \/var\/log\/nginx\/error.log<\/code> gibi komutlarla canl\u0131 olarak izleyebilirsiniz.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu kapsaml\u0131 rehberde, Rocky Linux 9 sunucunuza Nginx&#8217;i nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, temel yap\u0131land\u0131rmalar\u0131 nas\u0131l yapaca\u011f\u0131n\u0131z\u0131, g\u00fcvenlik duvar\u0131n\u0131 nas\u0131l y\u00f6netece\u011finizi ve Certbot ile \u00fccretsiz SSL\/TLS sertifikalar\u0131 kullanarak HTTPS&#8217;i nas\u0131l etkinle\u015ftirece\u011finizi ad\u0131m ad\u0131m \u00f6\u011frendiniz. Art\u0131k y\u00fcksek performansl\u0131 ve g\u00fcvenli web uygulamalar\u0131n\u0131z\u0131 bar\u0131nd\u0131rmak i\u00e7in sa\u011flam bir Nginx altyap\u0131s\u0131na sahipsiniz.<\/p>\n<p>Nginx, sadece bir web sunucusu olman\u0131n \u00f6tesinde, ters proxy, y\u00fck dengeleyici, HTTP \u00f6nbelle\u011fi gibi bir\u00e7ok farkl\u0131 rol\u00fc \u00fcstlenebilen esnek bir ara\u00e7t\u0131r. Bu rehberde \u00f6\u011frendi\u011finiz temel ad\u0131mlar, Nginx&#8217;in sundu\u011fu geni\u015f \u00f6zellik yelpazesini ke\u015ffetmeniz i\u00e7in bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r.<\/p>\n<p>\u0130leri d\u00fczeyde, Nginx&#8217;i a\u015fa\u011f\u0131daki gibi daha karma\u015f\u0131k senaryolar i\u00e7in yap\u0131land\u0131rmay\u0131 d\u00fc\u015f\u00fcnebilirsiniz:<\/p>\n<p>*   <strong>Y\u00fck Dengeleme (Load Balancing):<\/strong> Birden fazla uygulama sunucusu aras\u0131nda trafi\u011fi da\u011f\u0131tarak \u00f6l\u00e7eklenebilirlik ve y\u00fcksek eri\u015filebilirlik sa\u011flamak.<br \/>\n*   <strong>\u00d6nbellekleme (Caching):<\/strong> S\u0131k eri\u015filen i\u00e7eri\u011fi \u00f6nbelle\u011fe alarak yan\u0131t s\u00fcrelerini iyile\u015ftirmek ve sunucu y\u00fck\u00fcn\u00fc azaltmak.<br \/>\n*   <strong>FastCGI Proxy:<\/strong> PHP gibi dinamik i\u00e7erikleri i\u015flemek i\u00e7in PHP-FPM ile entegrasyon.<br \/>\n*   <strong>Kimlik Do\u011frulama:<\/strong> Temel HTTP kimlik do\u011frulamas\u0131 veya daha geli\u015fmi\u015f y\u00f6ntemlerle eri\u015fimi k\u0131s\u0131tlamak.<br \/>\n*   <strong>GZIP S\u0131k\u0131\u015ft\u0131rma:<\/strong> Web i\u00e7eri\u011fini s\u0131k\u0131\u015ft\u0131rarak bant geni\u015fli\u011fi kullan\u0131m\u0131n\u0131 azaltmak ve sayfa y\u00fckleme s\u00fcrelerini h\u0131zland\u0131rmak.<\/p>\n<p>Rocky Linux 9&#8217;un kararl\u0131l\u0131\u011f\u0131 ve Nginx&#8217;in performans\u0131 ile birle\u015fti\u011finde, web projeleriniz i\u00e7in g\u00fc\u00e7l\u00fc, g\u00fcvenilir ve y\u00fcksek performansl\u0131 bir temel olu\u015fturmu\u015f olursunuz. D\u00fczenli sistem g\u00fcncellemeleri yapmay\u0131, Nginx yap\u0131land\u0131rma dosyalar\u0131n\u0131z\u0131 yedeklemeyi ve g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131z\u0131 g\u00f6zden ge\u00e7irmeyi unutmay\u0131n. Bu ad\u0131mlar, sunucunuzun g\u00fcvenli ve sorunsuz \u00e7al\u0131\u015fmaya devam etmesini sa\u011flayacakt\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Rocky Linux 9 \u00dczerine Nginx Kurulumu: Kapsaml\u0131 Bir Rehber\nGiri\u015f\n\u0130nternet d\u00fcnyas\u0131n\u0131n omurgas\u0131n\u0131 olu\u015fturan web sunucular\u0131, modern uygulamala","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":[241],"tags":[],"class_list":{"0":"post-34482","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-linux","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>Rocky Linux 9 \u00dczerine Nginx Kurulumu: Kapsaml\u0131 Bir Rehber - 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\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rocky Linux 9 \u00dczerine Nginx Kurulumu: Kapsaml\u0131 Bir Rehber\" \/>\n<meta property=\"og:description\" content=\"Rocky Linux 9 \u00dczerine Nginx Kurulumu: Kapsaml\u0131 Bir Rehber Giri\u015f \u0130nternet d\u00fcnyas\u0131n\u0131n omurgas\u0131n\u0131 olu\u015fturan web sunucular\u0131, modern uygulamala\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-17T03:40:56+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=\"20 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Rocky Linux 9 \u00dczerine Nginx Kurulumu: Kapsaml\u0131 Bir Rehber\",\"datePublished\":\"2025-11-17T03:40:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/\"},\"wordCount\":3275,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Linux\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/\",\"name\":\"Rocky Linux 9 \u00dczerine Nginx Kurulumu: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-17T03:40:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rocky Linux 9 \u00dczerine Nginx Kurulumu: Kapsaml\u0131 Bir Rehber\"}]},{\"@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":"Rocky Linux 9 \u00dczerine Nginx Kurulumu: Kapsaml\u0131 Bir Rehber - 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\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"Rocky Linux 9 \u00dczerine Nginx Kurulumu: Kapsaml\u0131 Bir Rehber","og_description":"Rocky Linux 9 \u00dczerine Nginx Kurulumu: Kapsaml\u0131 Bir Rehber Giri\u015f \u0130nternet d\u00fcnyas\u0131n\u0131n omurgas\u0131n\u0131 olu\u015fturan web sunucular\u0131, modern uygulamala","og_url":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-17T03:40:56+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"20 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Rocky Linux 9 \u00dczerine Nginx Kurulumu: Kapsaml\u0131 Bir Rehber","datePublished":"2025-11-17T03:40:56+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/"},"wordCount":3275,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Linux"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/","name":"Rocky Linux 9 \u00dczerine Nginx Kurulumu: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-17T03:40:56+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/rocky-linux-9-uzerine-nginx-kurulumu-kapsamli-bir-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Rocky Linux 9 \u00dczerine Nginx Kurulumu: Kapsaml\u0131 Bir Rehber"}]},{"@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\/34482","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=34482"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34482\/revisions"}],"predecessor-version":[{"id":34483,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34482\/revisions\/34483"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=34482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=34482"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=34482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}