{"id":30551,"date":"2025-09-29T05:41:08","date_gmt":"2025-09-29T02:41:08","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=30551"},"modified":"2025-09-29T05:41:08","modified_gmt":"2025-09-29T02:41:08","slug":"ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/","title":{"rendered":"Ubuntu 18.04 \u00dczerine Nginx Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7 Rehberi]"},"content":{"rendered":"<p><body><\/p>\n<h2>Ubuntu 18.04 \u00dczerine Nginx Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7 Rehberi]<\/h2>\n<h2>Giri\u015f<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda web sitelerinin ve uygulamalar\u0131n h\u0131zl\u0131, g\u00fcvenilir ve y\u00fcksek performansl\u0131 bir \u015fekilde sunulmas\u0131 kritik \u00f6neme sahiptir. Bu ihtiya\u00e7lar\u0131 kar\u015f\u0131lamak \u00fczere geli\u015ftirilen web sunucular\u0131 aras\u0131nda Nginx (engine-x olarak telaffuz edilir), \u00f6zellikle y\u00fcksek trafikli sitelerde g\u00f6sterdi\u011fi \u00fcst\u00fcn performans, d\u00fc\u015f\u00fck kaynak t\u00fcketimi ve esnek mimarisi ile \u00f6ne \u00e7\u0131kmaktad\u0131r. Nginx, ilk olarak Igor Sysoev taraf\u0131ndan 2004 y\u0131l\u0131nda piyasaya s\u00fcr\u00fclm\u00fc\u015f olup, Apache HTTP Sunucusu&#8217;na alternatif olarak ortaya \u00e7\u0131km\u0131\u015ft\u0131r. O zamandan beri, ters proxy, y\u00fck dengeleyici (load balancer), HTTP \u00f6nbelle\u011fi ve posta proxy sunucusu gibi \u00e7e\u015fitli rollerde kullan\u0131labilen g\u00fc\u00e7l\u00fc bir ara\u00e7 haline gelmi\u015ftir.<\/p>\n<p>Bu rehberde, Ubuntu 18.04 i\u015fletim sistemi \u00fczerinde Nginx&#8217;in nas\u0131l kurulaca\u011f\u0131n\u0131 ve temel yap\u0131land\u0131rmas\u0131n\u0131n nas\u0131l yap\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m \u00f6\u011freneceksiniz. Ubuntu 18.04, uzun s\u00fcreli destek (LTS) sunan stabil bir s\u00fcr\u00fcm olmas\u0131 nedeniyle sunucu ortamlar\u0131nda hala yayg\u0131n olarak kullan\u0131lmaktad\u0131r. Bu h\u0131zl\u0131 ba\u015flang\u0131\u00e7 rehberi, Nginx ile tan\u0131\u015fmak isteyen veya mevcut bir Ubuntu 18.04 sunucusuna Nginx kurmak isteyen herkes i\u00e7in pratik ve anla\u015f\u0131l\u0131r bir yol haritas\u0131 sunmaktad\u0131r. Amac\u0131m\u0131z, kurulum s\u00fcrecini olabildi\u011fince basitle\u015ftirmek ve Nginx&#8217;in temel i\u015flevlerini anlaman\u0131za yard\u0131mc\u0131 olmakt\u0131r.<\/p>\n<p>Nginx&#8217;in tercih edilmesinin ba\u015fl\u0131ca nedenleri aras\u0131nda, asenkron ve olay tabanl\u0131 mimarisi sayesinde binlerce e\u015fzamanl\u0131 ba\u011flant\u0131y\u0131 d\u00fc\u015f\u00fck bellek kullan\u0131m\u0131yla i\u015fleyebilmesi yer al\u0131r. Bu \u00f6zellik, \u00f6zellikle dinamik i\u00e7erik sunan veya y\u00fcksek e\u015fzamanl\u0131 kullan\u0131c\u0131 say\u0131s\u0131na sahip uygulamalar i\u00e7in b\u00fcy\u00fck bir avantaj sa\u011flar. Ayr\u0131ca, ters proxy yetenekleri sayesinde birden fazla backend uygulamas\u0131n\u0131 tek bir Nginx sunucusu arkas\u0131nda \u00e7al\u0131\u015ft\u0131rmak, y\u00fck dengeleme ile trafi\u011fi da\u011f\u0131tmak ve SSL\/TLS sonland\u0131rma gibi geli\u015fmi\u015f i\u015flevleri kolayca yap\u0131land\u0131rmak m\u00fcmk\u00fcnd\u00fcr.<\/p>\n<p>Bu rehberin sonunda, Ubuntu 18.04 sunucunuzda \u00e7al\u0131\u015fan bir Nginx \u00f6rne\u011fine sahip olacak, temel y\u00f6netim komutlar\u0131n\u0131 \u00f6\u011frenecek ve kendi web siteniz i\u00e7in basit bir sunucu blo\u011fu olu\u015fturup etkinle\u015ftirebileceksiniz. G\u00fcvenlik duvar\u0131 yap\u0131land\u0131rmas\u0131ndan, Nginx&#8217;in servis y\u00f6netimini ve yap\u0131land\u0131rma dosyalar\u0131n\u0131n nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131na kadar bir\u00e7ok \u00f6nemli konuya de\u011finece\u011fiz.<\/p>\n<h2>\u00d6n Ko\u015fullar<\/h2>\n<p>Nginx kurulumuna ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n yerine getirildi\u011finden emin olman\u0131z gerekmektedir:<\/p>\n<p>*   <strong>Ubuntu 18.04 Sunucusu:<\/strong> Bu rehber i\u00e7in bir Ubuntu 18.04 i\u015fletim sistemine sahip bir sunucuya (fiziksel sunucu, sanal makine veya VPS) ihtiyac\u0131n\u0131z olacakt\u0131r. Sunucunun g\u00fcncel oldu\u011fundan emin olun.<br \/>\n*   <strong><code>sudo<\/code> Yetkilerine Sahip Kullan\u0131c\u0131:<\/strong> Sunucunuzda <code>sudo<\/code> ayr\u0131cal\u0131klar\u0131na sahip, root olmayan bir kullan\u0131c\u0131 hesab\u0131na sahip olman\u0131z \u015fiddetle tavsiye edilir. G\u00fcvenlik a\u00e7\u0131s\u0131ndan do\u011frudan <code>root<\/code> kullan\u0131c\u0131s\u0131 ile i\u015flem yapmak yerine <code>sudo<\/code> kullanmak daha g\u00fcvenlidir.<br \/>\n*   <strong>\u0130nternet Ba\u011flant\u0131s\u0131:<\/strong> Nginx paketlerini indirmek ve sistem g\u00fcncellemelerini yapmak i\u00e7in sunucunuzun aktif bir internet ba\u011flant\u0131s\u0131na sahip olmas\u0131 gerekmektedir.<br \/>\n*   <strong>Temel Linux Komut Sat\u0131r\u0131 Bilgisi:<\/strong> Temel Linux komutlar\u0131 (dizinlerde gezinme, dosya d\u00fczenleme, paket y\u00f6netimi vb.) hakk\u0131nda bilgi sahibi olmak, rehberdeki ad\u0131mlar\u0131 sorunsuz bir \u015fekilde uygulaman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131 (UFW) Bilgisi:<\/strong> Ubuntu&#8217;da genellikle varsay\u0131lan olarak gelen UFW (Uncomplicated Firewall) g\u00fcvenlik duvar\u0131n\u0131n nas\u0131l y\u00f6netilece\u011fi hakk\u0131nda temel bilgiye sahip olmak, Nginx&#8217;e d\u0131\u015far\u0131dan eri\u015fimi sa\u011flamak i\u00e7in \u00f6nemlidir. Bu rehberde UFW yap\u0131land\u0131rmas\u0131 da detayl\u0131 olarak ele al\u0131nacakt\u0131r.<\/p>\n<p>Bu \u00f6n ko\u015fullar\u0131 sa\u011flad\u0131\u011f\u0131n\u0131zda, Nginx kurulumuna g\u00fcvenle ba\u015flayabiliriz.<\/p>\n<h2>Sistemi G\u00fcncelleme<\/h2>\n<p>Herhangi bir yeni yaz\u0131l\u0131m kurulumuna ba\u015flamadan \u00f6nce, sunucunuzdaki paket listelerini ve y\u00fckl\u00fc paketleri g\u00fcncel tutmak iyi bir uygulamad\u0131r. Bu, hem g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapatmaya yard\u0131mc\u0131 olur hem de yeni yaz\u0131l\u0131mlar\u0131n ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131 olmadan do\u011fru bir \u015fekilde kurulmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>\u0130lk olarak, paket listelerinizi g\u00fcncellemek i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt update<\/code><\/pre>\n<p>Bu komut, yerel paket indeksinizi uzak depolardaki en son bilgilerle senkronize eder. B\u00f6ylece sisteminiz, hangi paketlerin g\u00fcncellenebilece\u011fi ve hangi yeni paketlerin mevcut oldu\u011fu hakk\u0131nda bilgi sahibi olur.<\/p>\n<p>Ard\u0131ndan, mevcut y\u00fckl\u00fc paketleri en son s\u00fcr\u00fcmlerine y\u00fckseltmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt upgrade<\/code><\/pre>\n<p>Bu komut, <code>apt update<\/code> taraf\u0131ndan tespit edilen t\u00fcm g\u00fcncellenebilir paketleri indirip kuracakt\u0131r. Y\u00fckseltme i\u015flemi s\u0131ras\u0131nda baz\u0131 servislerin yeniden ba\u015flat\u0131lmas\u0131 gerekebilir veya sizden onay istenebilir (<code>Y\/n<\/code>). Onay vermeniz durumunda i\u015flem devam edecektir.<\/p>\n<p>Bu iki komut, sunucunuzun g\u00fcncel ve sa\u011fl\u0131kl\u0131 bir durumda olmas\u0131n\u0131 sa\u011flar. Bu ad\u0131m\u0131 tamamlad\u0131ktan sonra Nginx kurulumuna ge\u00e7meye haz\u0131r\u0131z.<\/p>\n<h2>Nginx Kurulumu<\/h2>\n<p>Ubuntu&#8217;nun varsay\u0131lan depolar\u0131nda Nginx paketi bulunmaktad\u0131r, bu da kurulumu olduk\u00e7a basit hale getirir.<\/p>\n<h3>Nginx Paketlerini Y\u00fckleme<\/h3>\n<p>Nginx&#8217;i y\u00fcklemek i\u00e7in a\u015fa\u011f\u0131daki <code>apt<\/code> komutunu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt install nginx<\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, sistem sizden disk alan\u0131 kullan\u0131m\u0131n\u0131 onaylaman\u0131z\u0131 isteyebilir. <code>Y<\/code> tu\u015funa bas\u0131p Enter&#8217;a basarak devam edin. <code>apt<\/code> paket y\u00f6neticisi, Nginx paketini ve onunla birlikte gelen t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131 indirip kuracakt\u0131r.<\/p>\n<p>Kurulum tamamland\u0131\u011f\u0131nda, Nginx servisi otomatik olarak ba\u015flayacak ve sistem a\u00e7\u0131l\u0131\u015f\u0131nda otomatik olarak \u00e7al\u0131\u015facak \u015fekilde ayarlanacakt\u0131r.<\/p>\n<h3>Nginx Servisini Kontrol Etme<\/h3>\n<p>Nginx&#8217;in ba\u015far\u0131l\u0131 bir \u015fekilde kurulup kurulmad\u0131\u011f\u0131n\u0131 ve \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in <code>systemctl<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">systemctl status nginx<\/code><\/pre>\n<p>Bu komutun \u00e7\u0131kt\u0131s\u0131 Nginx servisinin durumunu g\u00f6sterecektir. Ba\u015far\u0131l\u0131 bir kurulumda, \u00e7\u0131kt\u0131da <code>active (running)<\/code> ifadesini g\u00f6rmeniz gerekir. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-\">\u25cf nginx.service - A high performance web server and a reverse proxy server\n   Loaded: loaded (\/lib\/systemd\/system\/nginx.service; enabled; vendor preset: enabled)\n   Active: active (running) since Thu 2023-10-26 10:00:00 UTC; 5min ago\n     Docs: man:nginx(8)\n Main PID: 1234 (nginx)\n    Tasks: 2 (limit: 1152)\n   CGroup: \/system.slice\/nginx.service\n           \u251c\u25001234 nginx: master process \/usr\/sbin\/nginx -g daemon on; master_process on;\n           \u2514\u25001235 nginx: worker process<\/code><\/pre>\n<p>E\u011fer Nginx \u00e7al\u0131\u015fm\u0131yorsa (<code>inactive<\/code> veya <code>failed<\/code> durumunda ise), a\u015fa\u011f\u0131daki komutla manuel olarak ba\u015flatabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start nginx<\/code><\/pre>\n<p>Nginx&#8217;in sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flamak i\u00e7in (e\u011fer zaten <code>enabled<\/code> de\u011filse):<\/p>\n<pre><code class=\"language-bash\">sudo systemctl enable nginx<\/code><\/pre>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131\u011f\u0131n\u0131zda, Nginx sunucunuz Ubuntu 18.04 sisteminizde ba\u015far\u0131yla kurulmu\u015f ve \u00e7al\u0131\u015f\u0131r durumda olacakt\u0131r. Ancak, d\u0131\u015far\u0131dan eri\u015filebilir olmas\u0131 i\u00e7in g\u00fcvenlik duvar\u0131 yap\u0131land\u0131rmas\u0131 yapmam\u0131z gerekmektedir.<\/p>\n<h2>G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131<\/h2>\n<p>Ubuntu 18.04 sunucular\u0131nda genellikle varsay\u0131lan olarak UFW (Uncomplicated Firewall) g\u00fcvenlik duvar\u0131 etkin gelir. Nginx&#8217;in d\u0131\u015far\u0131dan eri\u015filebilir olmas\u0131 i\u00e7in g\u00fcvenlik duvar\u0131nda ilgili portlar\u0131n a\u00e7\u0131lmas\u0131 gerekmektedir.<\/p>\n<h3>UFW Durumunu Kontrol Etme<\/h3>\n<p>\u00d6ncelikle UFW&#8217;nin etkin olup olmad\u0131\u011f\u0131n\u0131 kontrol edelim:<\/p>\n<pre><code class=\"language-bash\">sudo ufw status<\/code><\/pre>\n<p>E\u011fer UFW etkin de\u011filse, \u00e7\u0131kt\u0131da <code>Status: inactive<\/code> ifadesini g\u00f6r\u00fcrs\u00fcn\u00fcz. E\u011fer etkinse, mevcut kurallar\u0131 listeler.<\/p>\n<h3>Nginx \u0130\u00e7in UFW Profilleri<\/h3>\n<p>Nginx, kurulumuyla birlikte UFW i\u00e7in baz\u0131 uygulama profilleri tan\u0131mlar. Bu profiller, Nginx&#8217;e eri\u015fim i\u00e7in gerekli portlar\u0131 kolayca a\u00e7mam\u0131z\u0131 sa\u011flar. Mevcut Nginx profillerini listelemek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo ufw app list<\/code><\/pre>\n<p>Bu komutun \u00e7\u0131kt\u0131s\u0131 a\u015fa\u011f\u0131daki gibi Nginx ile ilgili profilleri g\u00f6sterecektir:<\/p>\n<pre><code class=\"language-\">Available applications:\n  Nginx Full\n  Nginx HTTP\n  Nginx HTTPS\n  OpenSSH<\/code><\/pre>\n<p>*   <strong>Nginx Full:<\/strong> Hem HTTP (port 80) hem de HTTPS (port 443) trafi\u011fine izin verir.<br \/>\n*   <strong>Nginx HTTP:<\/strong> Yaln\u0131zca HTTP (port 80) trafi\u011fine izin verir.<br \/>\n*   <strong>Nginx HTTPS:<\/strong> Yaln\u0131zca HTTPS (port 443) trafi\u011fine izin verir.<\/p>\n<h3>HTTP Eri\u015fimi \u0130\u00e7in Kural Ekleme<\/h3>\n<p>Bu rehberin ba\u015flang\u0131\u00e7 a\u015famas\u0131nda, Nginx&#8217;in HTTP \u00fczerinden eri\u015filebilir olmas\u0131n\u0131 sa\u011flayaca\u011f\u0131z. Daha sonra isterseniz HTTPS&#8217;i de yap\u0131land\u0131rabilirsiniz. HTTP eri\u015fimine izin vermek i\u00e7in <code>Nginx HTTP<\/code> profilini etkinle\u015ftirin:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 'Nginx HTTP'<\/code><\/pre>\n<p>Bu komut, Nginx&#8217;in standart HTTP portu olan 80 \u00fczerinden gelen ba\u011flant\u0131lara izin verecektir.<\/p>\n<h3>UFW&#8217;yi Etkinle\u015ftirme (Gerekliyse)<\/h3>\n<p>E\u011fer <code>sudo ufw status<\/code> komutu <code>Status: inactive<\/code> d\u00f6nd\u00fcrd\u00fcyse, UFW&#8217;yi etkinle\u015ftirmeniz gerekmektedir:<\/p>\n<pre><code class=\"language-bash\">sudo ufw enable<\/code><\/pre>\n<p>Bu komut, g\u00fcvenlik duvar\u0131n\u0131 etkinle\u015ftirecek ve mevcut kurallar\u0131 uygulamaya ba\u015flayacakt\u0131r. Bu i\u015flem s\u0131ras\u0131nda SSH ba\u011flant\u0131n\u0131z\u0131n kesilme riski olabilece\u011fi uyar\u0131s\u0131 alabilirsiniz. E\u011fer SSH portuna (varsay\u0131lan 22) izin veren bir kural\u0131n\u0131z yoksa, ba\u011flant\u0131n\u0131z kesilebilir. Genellikle <code>OpenSSH<\/code> profili varsay\u0131lan olarak izinlidir veya siz zaten manuel olarak eklemi\u015fsinizdir. Emin de\u011filseniz, UFW&#8217;yi etkinle\u015ftirmeden \u00f6nce SSH eri\u015fimine izin verdi\u011finizden emin olun: <code>sudo ufw allow 'OpenSSH'<\/code>.<\/p>\n<h3>Yap\u0131land\u0131rmay\u0131 Do\u011frulama<\/h3>\n<p>G\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131 uygulad\u0131ktan sonra, de\u011fi\u015fikliklerin do\u011fru bir \u015fekilde etkinle\u015ftirildi\u011fini do\u011frulamak i\u00e7in UFW durumunu tekrar kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo ufw status<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da, Nginx HTTP profilinin etkin oldu\u011funu ve port 80&#8217;e gelen ba\u011flant\u0131lara izin verildi\u011fini g\u00f6rmelisiniz:<\/p>\n<pre><code class=\"language-\">Status: active\n\nTo                         Action      From\n--                         ------      ----\n80\/tcp (Nginx HTTP)        ALLOW       Anywhere\n22\/tcp (OpenSSH)           ALLOW       Anywhere\n80\/tcp (Nginx HTTP (v6))   ALLOW       Anywhere (v6)\n22\/tcp (OpenSSH (v6))      ALLOW       Anywhere (v6)<\/code><\/pre>\n<p>Bu ad\u0131m tamamland\u0131\u011f\u0131nda, Nginx sunucunuz d\u0131\u015far\u0131dan web taray\u0131c\u0131lar\u0131 arac\u0131l\u0131\u011f\u0131yla eri\u015filebilir hale gelmi\u015f demektir.<\/p>\n<h2>Nginx Kurulumunu Do\u011frulama<\/h2>\n<p>Nginx&#8217;in ba\u015far\u0131yla kurulup g\u00fcvenlik duvar\u0131 taraf\u0131ndan eri\u015filebilir hale getirildi\u011fini do\u011frulamak i\u00e7in, bir web taray\u0131c\u0131s\u0131 kullanarak sunucunuzun IP adresine eri\u015fmeye \u00e7al\u0131\u015fabilirsiniz.<\/p>\n<h3>Sunucunun IP Adresini \u00d6\u011frenme<\/h3>\n<p>Sunucunuzun genel IP adresini \u00f6\u011frenmek i\u00e7in \u00e7e\u015fitli y\u00f6ntemler kullanabilirsiniz:<\/p>\n<p>1.  <strong><code>ip a<\/code> komutu:<\/strong><\/p>\n<pre><code class=\"language-bash\">ip a show eth0<\/code><\/pre>\n<p>    Bu komut, <code>eth0<\/code> a\u011f aray\u00fcz\u00fcn\u00fcz\u00fcn IP adresini g\u00f6sterecektir. E\u011fer farkl\u0131 bir a\u011f aray\u00fcz\u00fc kullan\u0131yorsan\u0131z (\u00f6rne\u011fin <code>enp0s3<\/code>), komutu buna g\u00f6re ayarlaman\u0131z gerekebilir. <code>inet<\/code> ile ba\u015flayan sat\u0131r\u0131 aray\u0131n.<\/p>\n<p>2.  <strong><code>curl<\/code> ile harici servis kullanma:<\/strong><\/p>\n<pre><code class=\"language-bash\">curl -4 icanhazip.com<\/code><\/pre>\n<p>    Bu komut, sunucunuzun d\u0131\u015far\u0131dan g\u00f6r\u00fcnen genel IPv4 adresini d\u00f6nd\u00fcrecektir.<\/p>\n<p>IP adresinizi \u00f6\u011frendikten sonra, bir web taray\u0131c\u0131s\u0131 a\u00e7\u0131n ve bu IP adresini URL \u00e7ubu\u011funa yazarak Enter tu\u015funa bas\u0131n. \u00d6rne\u011fin, IP adresiniz <code>203.0.113.1<\/code> ise, taray\u0131c\u0131n\u0131zda <code>http:\/\/203.0.113.1<\/code> adresine gidin.<\/p>\n<h3>&#8220;Welcome to Nginx!&#8221; Sayfas\u0131n\u0131 G\u00f6rme<\/h3>\n<p>E\u011fer her \u015fey do\u011fru yap\u0131land\u0131r\u0131ld\u0131ysa, taray\u0131c\u0131n\u0131zda Nginx&#8217;in varsay\u0131lan kar\u015f\u0131lama sayfas\u0131n\u0131 g\u00f6rmelisiniz. Bu sayfa genellikle &#8220;Welcome to Nginx!&#8221; ba\u015fl\u0131\u011f\u0131yla ba\u015flar ve Nginx&#8217;in ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<p>Bu sayfa, Nginx&#8217;in do\u011fru bir \u015fekilde kuruldu\u011funu, \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131n da d\u00fczg\u00fcn bir \u015fekilde ayarland\u0131\u011f\u0131n\u0131 teyit eder. Art\u0131k Nginx sunucunuzu y\u00f6netmeye ve yap\u0131land\u0131rmaya haz\u0131rs\u0131n\u0131z.<\/p>\n<h2>Nginx Servisini Y\u00f6netme<\/h2>\n<p>Nginx bir <code>systemd<\/code> servisi olarak \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in, onu ba\u015flatmak, durdurmak, yeniden ba\u015flatmak ve yap\u0131land\u0131rma de\u011fi\u015fikliklerini uygulamak i\u00e7in <code>systemctl<\/code> komutunu kullanabilirsiniz.<\/p>\n<h3>Servis Komutlar\u0131<\/h3>\n<p>\u0130\u015fte Nginx servisini y\u00f6netmek i\u00e7in kullanabilece\u011finiz temel komutlar:<\/p>\n<p>*   <strong>Nginx servisini durdurma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop nginx<\/code><\/pre>\n<p>    Bu komut, Nginx sunucusunu durdurur. Web siteniz art\u0131k eri\u015filebilir olmayacakt\u0131r.<\/p>\n<p>*   <strong>Nginx servisini ba\u015flatma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl start nginx<\/code><\/pre>\n<p>    Bu komut, durdurulmu\u015f bir Nginx servisini ba\u015flat\u0131r.<\/p>\n<p>*   <strong>Nginx servisini yeniden ba\u015flatma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart nginx<\/code><\/pre>\n<p>    Bu komut, Nginx servisini durdurur ve sonra tekrar ba\u015flat\u0131r. Yap\u0131land\u0131rma dosyalar\u0131nda \u00f6nemli de\u011fi\u015fiklikler yapt\u0131\u011f\u0131n\u0131zda veya yeni mod\u00fcller ekledi\u011finizde kullan\u0131\u015fl\u0131d\u0131r. Bu i\u015flem s\u0131ras\u0131nda k\u0131sa bir kesinti ya\u015fanabilir.<\/p>\n<p>*   <strong>Nginx yap\u0131land\u0131rma de\u011fi\u015fikliklerini yeniden y\u00fckleme (reload):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl reload nginx<\/code><\/pre>\n<p>    Bu komut, Nginx&#8217;e yeni yap\u0131land\u0131rmay\u0131 y\u00fcklemesini ancak mevcut ba\u011flant\u0131lar\u0131 kesmeden yapmas\u0131n\u0131 s\u00f6yler. Bu, web sitenizde herhangi bir kesinti olmadan yap\u0131land\u0131rma de\u011fi\u015fikliklerini uygulaman\u0131n tercih edilen yoludur. Genellikle sunucu bloklar\u0131 (virtual hosts) veya di\u011fer yap\u0131land\u0131rma dosyalar\u0131nda de\u011fi\u015fiklik yapt\u0131\u011f\u0131n\u0131zda kullan\u0131l\u0131r.<\/p>\n<p>*   <strong>Nginx servisinin durumunu kontrol etme:<\/strong><\/p>\n<pre><code class=\"language-bash\">systemctl status nginx<\/code><\/pre>\n<p>    Bu komut, Nginx servisinin \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131, ne kadar s\u00fcredir \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve di\u011fer ilgili bilgileri g\u00f6sterir.<\/p>\n<p>*   <strong>Nginx&#8217;in sistem ba\u015flang\u0131c\u0131nda otomatik ba\u015flamas\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rakma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl disable nginx<\/code><\/pre>\n<p>    Bu komut, Nginx&#8217;in sunucu yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 engeller.<\/p>\n<p>*   <strong>Nginx&#8217;in sistem ba\u015flang\u0131c\u0131nda otomatik ba\u015flamas\u0131n\u0131 etkinle\u015ftirme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl enable nginx<\/code><\/pre>\n<p>    Bu komut, Nginx&#8217;in sunucu yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flar (varsay\u0131lan olarak zaten etkin olmal\u0131d\u0131r).<\/p>\n<p>Bu komutlar, Nginx sunucunuzun ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fc y\u00f6netmek i\u00e7in temel ara\u00e7lard\u0131r. \u00d6zellikle <code>reload<\/code> komutu, kesintisiz hizmet sunumu i\u00e7in yap\u0131land\u0131rma de\u011fi\u015fikliklerini uygularken \u00e7ok \u00f6nemlidir.<\/p>\n<h2>Nginx Yap\u0131land\u0131rma Dosyalar\u0131<\/h2>\n<p>Nginx, esnek ve mod\u00fcler bir yap\u0131ya sahiptir ve bu yap\u0131land\u0131rma dosyalar\u0131 arac\u0131l\u0131\u011f\u0131yla y\u00f6netilir. Nginx&#8217;in ana yap\u0131land\u0131rma dizini <code>\/etc\/nginx\/<\/code> alt\u0131ndad\u0131r. Bu dizin i\u00e7inde farkl\u0131 ama\u00e7lar i\u00e7in \u00e7e\u015fitli dosyalar ve alt dizinler bulunur.<\/p>\n<h3>Ana Yap\u0131land\u0131rma Dosyas\u0131<\/h3>\n<p>*   <strong><code>\/etc\/nginx\/nginx.conf<\/code><\/strong>: Bu, Nginx&#8217;in ana yap\u0131land\u0131rma dosyas\u0131d\u0131r. Genellikle global ayarlar\u0131, worker process (i\u015f\u00e7i s\u00fcre\u00e7leri) say\u0131s\u0131, event mod\u00fcl\u00fc ayarlar\u0131 ve HTTP bloklar\u0131 gibi ana yap\u0131land\u0131rma bloklar\u0131n\u0131 i\u00e7erir. Bu dosya, di\u011fer yap\u0131land\u0131rma dosyalar\u0131n\u0131 (<code>include<\/code> direktifi ile) da \u00e7a\u011f\u0131r\u0131r.<\/p>\n<pre><code class=\"language-nginx\"># \/etc\/nginx\/nginx.conf dosyas\u0131n\u0131n basitle\u015ftirilmi\u015f bir g\u00f6r\u00fcn\u00fcm\u00fc\n    user www-data;\n    worker_processes auto;\n    pid \/run\/nginx.pid;\n    include \/etc\/nginx\/modules-enabled\/*.conf;\n\n    events {\n        worker_connections 768;\n        # multi_accept on;\n    }\n\n    http {\n        ##\n        # Temel Ayarlar\n        ##\n        sendfile on;\n        tcp_nopush on;\n        tcp_nodelay on;\n        keepalive_timeout 65;\n        types_hash_max_size 2048;\n        # server_tokens off;\n\n        include \/etc\/nginx\/mime.types;\n        default_type application\/octet-stream;\n\n        ##\n        # SSL Ayarlar\u0131\n        ##\n        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE\n        ssl_prefer_server_ciphers on;\n\n        ##\n        # Loglama Ayarlar\u0131\n        ##\n        access_log \/var\/log\/nginx\/access.log;\n        error_log \/var\/log\/nginx\/error.log;\n\n        ##\n        # Gzip Ayarlar\u0131\n        ##\n        gzip on;\n        # gzip_vary on;\n        # gzip_proxied any;\n        # gzip_comp_level 6;\n        # gzip_buffers 16 8k;\n        # gzip_http_version 1.1;\n        # gzip_types text\/plain text\/css application\/json application\/javascript text\/xml application\/xml application\/xml+rss text\/javascript;\n\n        ##\n        # Sanal Host Yap\u0131land\u0131rmalar\u0131\n        ##\n        include \/etc\/nginx\/conf.d\/*.conf;\n        include \/etc\/nginx\/sites-enabled\/*;\n    }<\/code><\/pre>\n<p>    Yukar\u0131daki \u00f6rnekte <code>http<\/code> blo\u011fu i\u00e7inde <code>include \/etc\/nginx\/sites-enabled\/*;<\/code> sat\u0131r\u0131n\u0131 g\u00f6receksiniz. Bu sat\u0131r, Nginx&#8217;in <code>\/etc\/nginx\/sites-enabled\/<\/code> dizinindeki t\u00fcm yap\u0131land\u0131rma dosyalar\u0131n\u0131 okumas\u0131n\u0131 sa\u011flar. Bu dizin genellikle sanal host (server block) yap\u0131land\u0131rmalar\u0131n\u0131 i\u00e7erir.<\/p>\n<h3>Sunucu Bloklar\u0131 (Virtual Hosts)<\/h3>\n<p>Nginx&#8217;te Apache&#8217;deki sanal hostlara benzer \u015fekilde &#8220;server block&#8221; ad\u0131 verilen yap\u0131lar kullan\u0131l\u0131r. Bu bloklar, farkl\u0131 alan adlar\u0131 veya IP adresleri i\u00e7in ayr\u0131 ayr\u0131 web siteleri yap\u0131land\u0131rman\u0131za olanak tan\u0131r.<\/p>\n<p>*   <strong><code>\/etc\/nginx\/sites-available\/<\/code><\/strong>: Bu dizin, t\u00fcm Nginx sunucu blok yap\u0131land\u0131rma dosyalar\u0131n\u0131z\u0131 saklad\u0131\u011f\u0131n\u0131z yerdir. Burada yap\u0131land\u0131rd\u0131\u011f\u0131n\u0131z siteler hen\u00fcz etkin de\u011fildir.<br \/>\n*   <strong><code>\/etc\/nginx\/sites-enabled\/<\/code><\/strong>: Bu dizin, etkin olan sunucu bloklar\u0131na i\u015faret eden sembolik ba\u011flant\u0131lar\u0131 (symlink) i\u00e7erir. Bir sunucu blo\u011funu etkinle\u015ftirmek i\u00e7in, <code>\/etc\/nginx\/sites-available\/<\/code> dizinindeki ilgili dosyaya buradan bir sembolik ba\u011flant\u0131 olu\u015fturman\u0131z gerekir.<\/p>\n<p>    Varsay\u0131lan olarak, Nginx bir <code>default<\/code> sunucu blo\u011fu ile gelir. Bu blok, sunucunuza bir alan ad\u0131 belirtmeden IP adresiyle eri\u015fti\u011finizde veya yap\u0131land\u0131r\u0131lan hi\u00e7bir alan ad\u0131yla e\u015fle\u015fmeyen bir istek geldi\u011finde devreye girer.<\/p>\n<p>    Bir sunucu blo\u011fu genellikle a\u015fa\u011f\u0131daki direktifleri i\u00e7erir:<br \/>\n    *   <code>listen<\/code>: Nginx&#8217;in hangi portu dinlemesi gerekti\u011fini belirtir (\u00f6rn. <code>80<\/code> veya <code>443<\/code>).<br \/>\n    *   <code>server_name<\/code>: Bu blo\u011fun hangi alan ad\u0131 (veya alan adlar\u0131) i\u00e7in ge\u00e7erli oldu\u011funu belirtir (\u00f6rn. <code>example.com www.example.com<\/code>).<br \/>\n    *   <code>root<\/code>: Web sitesinin k\u00f6k dizinini belirtir (\u00f6rn. <code>\/var\/www\/example.com\/html<\/code>).<br \/>\n    *   <code>index<\/code>: Dizin istendi\u011finde hangi dosyan\u0131n sunulaca\u011f\u0131n\u0131 belirtir (\u00f6rn. <code>index.html<\/code>).<br \/>\n    *   <code>location<\/code>: Belirli URL yollar\u0131 i\u00e7in \u00f6zel yap\u0131land\u0131rmalar tan\u0131mlar (\u00f6rn. <code>\/<\/code> t\u00fcm istekler i\u00e7in).<br \/>\n    *   <code>access_log<\/code> ve <code>error_log<\/code>: Bu sunucu blo\u011funa \u00f6zel eri\u015fim ve hata g\u00fcnl\u00fcklerinin kaydedilece\u011fi yollar\u0131 belirtir.<\/p>\n<h3>Genel Yap\u0131land\u0131rma Dosyalar\u0131<\/h3>\n<p><em>   <strong><code>\/etc\/nginx\/conf.d\/<\/code><\/strong>: Bu dizin, genellikle ana <code>nginx.conf<\/code> dosyas\u0131nda <code>include \/etc\/nginx\/conf.d\/<\/em>.conf;<\/code> direktifi ile \u00e7a\u011fr\u0131l\u0131r. K\u00fc\u00e7\u00fck, \u00f6zel yap\u0131land\u0131rma par\u00e7ac\u0131klar\u0131n\u0131 veya mod\u00fcl yap\u0131land\u0131rmalar\u0131n\u0131 ayr\u0131 dosyalarda tutmak i\u00e7in kullan\u0131labilir.<br \/>\n*   <strong><code>\/etc\/nginx\/snippets\/<\/code><\/strong>: Bu dizin, birden fazla sunucu blo\u011funda tekrar eden kod par\u00e7ac\u0131klar\u0131n\u0131 (\u00f6rn. SSL yap\u0131land\u0131rmalar\u0131, ortak g\u00fcvenlik ba\u015fl\u0131klar\u0131) saklamak i\u00e7in kullan\u0131labilir. Bu sayede kod tekrar\u0131ndan ka\u00e7\u0131n\u0131l\u0131r ve yap\u0131land\u0131rma daha d\u00fczenli hale gelir.<\/p>\n<h3>Yap\u0131land\u0131rma Testi<\/h3>\n<p>Nginx yap\u0131land\u0131rma dosyalar\u0131nda herhangi bir de\u011fi\u015fiklik yapt\u0131ktan sonra, de\u011fi\u015fiklikleri uygulamadan \u00f6nce s\u00f6zdizimi hatalar\u0131n\u0131 kontrol etmek \u00e7ok \u00f6nemlidir. Bunu yapmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t<\/code><\/pre>\n<p>E\u011fer yap\u0131land\u0131rman\u0131zda bir hata yoksa, \u00e7\u0131kt\u0131da <code>syntax is ok<\/code> ve <code>test is successful<\/code> mesajlar\u0131n\u0131 g\u00f6r\u00fcrs\u00fcn\u00fcz. E\u011fer bir hata varsa, Nginx hatan\u0131n hangi dosyada ve hangi sat\u0131rda oldu\u011funu belirtmeye \u00e7al\u0131\u015facakt\u0131r. Hatalar\u0131 d\u00fczelttikten sonra tekrar test edin.<\/p>\n<p>Yap\u0131land\u0131rma testi ba\u015far\u0131l\u0131 oldu\u011funda, de\u011fi\u015fiklikleri uygulamak i\u00e7in Nginx servisini yeniden y\u00fckleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl reload nginx<\/code><\/pre>\n<p>Bu b\u00f6l\u00fcmdeki bilgiler, Nginx&#8217;in yap\u0131land\u0131rma dosyalar\u0131 hiyerar\u015fisini anlaman\u0131za ve kendi web sitelerinizi kurmak i\u00e7in nas\u0131l d\u00fczenlemeler yapman\u0131z gerekti\u011fini kavraman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h2>\u00d6rnek: Yeni Bir Web Sitesi Olu\u015fturma<\/h2>\n<p>\u015eimdi, Nginx \u00fczerinde yeni bir alan ad\u0131 i\u00e7in basit bir web sitesi (sunucu blo\u011fu) nas\u0131l olu\u015fturulaca\u011f\u0131n\u0131 ad\u0131m ad\u0131m g\u00f6relim. Bu \u00f6rnekte <code>example.com<\/code> alan ad\u0131n\u0131 kullanaca\u011f\u0131z. E\u011fer ger\u00e7ek bir alan ad\u0131n\u0131z varsa, onu kullanabilirsiniz. Yerel test i\u00e7in <code>\/etc\/hosts<\/code> dosyan\u0131z\u0131 d\u00fczenleyerek <code>example.com<\/code>&#8216;u sunucunuzun IP adresine y\u00f6nlendirebilirsiniz.<\/p>\n<h3>Dizin Yap\u0131s\u0131 Olu\u015fturma<\/h3>\n<p>Web sitesi dosyalar\u0131n\u0131z\u0131 saklamak i\u00e7in bir dizin olu\u015ftural\u0131m. Nginx genellikle <code>\/var\/www\/<\/code> alt\u0131nda siteye \u00f6zel dizinler kullan\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/var\/www\/example.com\/html<\/code><\/pre>\n<p>Bu komut, <code>example.com<\/code> i\u00e7in <code>html<\/code> alt diziniyle birlikte gerekli dizinleri olu\u015fturur.<\/p>\n<p>Ard\u0131ndan, web sunucusunun bu dizinlere eri\u015febilmesi i\u00e7in uygun izinleri ayarlamam\u0131z gerekiyor. Genellikle <code>www-data<\/code> kullan\u0131c\u0131s\u0131 Nginx worker s\u00fcre\u00e7leri taraf\u0131ndan kullan\u0131l\u0131r. Ayr\u0131ca, kendi kullan\u0131c\u0131 hesab\u0131n\u0131z\u0131n da bu dizinlerde dosya olu\u015fturabilmesi i\u00e7in sahipli\u011fi ayarlamak iyi bir uygulamad\u0131r:<\/p>\n<pre><code class=\"language-bash\">sudo chown -R $USER:$USER \/var\/www\/example.com\/html\nsudo chmod -R 755 \/var\/www\/example.com<\/code><\/pre>\n<p>\u0130lk komut, olu\u015fturdu\u011funuz dizinin sahipli\u011fini mevcut kullan\u0131c\u0131n\u0131za verir. \u0130kinci komut ise dizinlere ve dosyalara okuma, yazma ve \u00e7al\u0131\u015ft\u0131rma izinlerini ayarlar.<\/p>\n<h3>\u00d6rnek HTML Dosyas\u0131 Olu\u015fturma<\/h3>\n<p>\u015eimdi, web sitesinde g\u00f6r\u00fcnt\u00fclenecek 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>A\u00e7\u0131lan edit\u00f6re a\u015fa\u011f\u0131daki HTML i\u00e7eri\u011fini yap\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-html\"><!DOCTYPE html>\n<html>\n<head>\n    <title>Welcome to Example.com!<\/title>\n    <style>\n        body {\n            width: 35em;\n            margin: 0 auto;\n            font-family: Tahoma, Verdana, Arial, sans-serif;\n        }\n    <\/style>\n<\/head>\n<body>\n    \n    <p>This is a custom landing page for your new Nginx server block.<\/p>\n<\/body>\n<\/html><\/code><\/pre>\n<p>Kaydedin ve kapat\u0131n (CTRL+X, Y, Enter).<\/p>\n<h3>Sunucu Blo\u011fu Olu\u015fturma<\/h3>\n<p>\u015eimdi bu web sitesi i\u00e7in bir Nginx sunucu blo\u011fu yap\u0131land\u0131rma dosyas\u0131 olu\u015ftural\u0131m. Bu dosyay\u0131 <code>\/etc\/nginx\/sites-available\/<\/code> dizinine kaydedece\u011fiz:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/example.com<\/code><\/pre>\n<p>A\u00e7\u0131lan edit\u00f6re a\u015fa\u011f\u0131daki yap\u0131land\u0131rmay\u0131 yap\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    listen [::]:80;\n\n    root \/var\/www\/example.com\/html;\n    index index.html index.htm index.nginx-debian.html;\n\n    server_name example.com www.example.com;\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n\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>Bu yap\u0131land\u0131rma blo\u011funu a\u00e7\u0131klayal\u0131m:<br \/>\n*   <code>listen 80;<\/code> ve <code>listen [::]:80;<\/code>: Nginx&#8217;in hem IPv4 hem de IPv6 i\u00e7in 80 numaral\u0131 portu dinlemesini sa\u011flar.<br \/>\n*   <code>root \/var\/www\/example.com\/html;<\/code>: Web sitesinin k\u00f6k dizinini belirtir.<br \/>\n*   <code>index index.html ...;<\/code>: Bir dizine eri\u015fildi\u011finde Nginx&#8217;in s\u0131ras\u0131yla hangi dosyalar\u0131 arayaca\u011f\u0131n\u0131 belirtir.<br \/>\n*   <code>server_name example.com www.example.com;<\/code>: Bu sunucu blo\u011funun hangi alan adlar\u0131 i\u00e7in ge\u00e7erli oldu\u011funu belirtir. \u0130stek ba\u015fl\u0131\u011f\u0131ndaki <code>Host<\/code> bilgisi bu alan adlar\u0131ndan biriyle e\u015fle\u015firse bu blok kullan\u0131l\u0131r.<br \/>\n*   <code>location \/ { ... }<\/code>: T\u00fcm istekler i\u00e7in ge\u00e7erli olan bir konum blo\u011fudur. <code>try_files<\/code> direktifi, gelen iste\u011fin URI&#8217;sini s\u0131ras\u0131yla dosya, dizin olarak arar ve bulunamazsa 404 hatas\u0131 d\u00f6nd\u00fcr\u00fcr.<br \/>\n*   <code>access_log<\/code> ve <code>error_log<\/code>: Bu sunucu blo\u011funa \u00f6zel eri\u015fim ve hata g\u00fcnl\u00fcklerinin tutulaca\u011f\u0131 dosyalar\u0131 belirtir.<\/p>\n<p>Kaydedin ve kapat\u0131n.<\/p>\n<h3>Sunucu Blo\u011funu Etkinle\u015ftirme<\/h3>\n<p>Sunucu blo\u011funu etkinle\u015ftirmek i\u00e7in, <code>sites-available<\/code> dizinindeki yap\u0131land\u0131rma dosyas\u0131na <code>sites-enabled<\/code> dizininden bir sembolik ba\u011flant\u0131 olu\u015fturmam\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo ln -s \/etc\/nginx\/sites-available\/example.com \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n<h3>Varsay\u0131lan Sunucu Blo\u011funu Devre D\u0131\u015f\u0131 B\u0131rakma (\u0130ste\u011fe Ba\u011fl\u0131)<\/h3>\n<p>E\u011fer sadece <code>example.com<\/code> sunucu blo\u011funuzun \u00e7al\u0131\u015fmas\u0131n\u0131 istiyorsan\u0131z ve Nginx&#8217;in varsay\u0131lan &#8220;Welcome to Nginx!&#8221; sayfas\u0131n\u0131 g\u00f6stermesini istemiyorsan\u0131z, varsay\u0131lan sunucu blo\u011funu devre d\u0131\u015f\u0131 b\u0131rakabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo unlink \/etc\/nginx\/sites-enabled\/default<\/code><\/pre>\n<p>Bu ad\u0131m, varsay\u0131lan yap\u0131land\u0131rman\u0131n sembolik ba\u011flant\u0131s\u0131n\u0131 kald\u0131r\u0131r.<\/p>\n<h3>Nginx Yap\u0131land\u0131rmas\u0131n\u0131 Test Etme ve Yeniden Y\u00fckleme<\/h3>\n<p>Yeni yap\u0131land\u0131rmay\u0131 uygulamadan \u00f6nce s\u00f6zdizimi hatalar\u0131n\u0131 kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t<\/code><\/pre>\n<p>E\u011fer <code>syntax is ok<\/code> ve <code>test is successful<\/code> mesajlar\u0131n\u0131 g\u00f6r\u00fcyorsan\u0131z, Nginx servisini yeniden y\u00fckleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl reload nginx<\/code><\/pre>\n<p>Bu, Nginx&#8217;in kesinti olmadan yeni yap\u0131land\u0131rmay\u0131 y\u00fcklemesini sa\u011flar.<\/p>\n<h3>Test Etme<\/h3>\n<p>\u015eimdi bir web taray\u0131c\u0131s\u0131 a\u00e7\u0131n ve <code>http:\/\/example.com<\/code> adresine gidin. E\u011fer ger\u00e7ek bir alan ad\u0131n\u0131z varsa ve DNS kay\u0131tlar\u0131n\u0131z do\u011fru ayarlanm\u0131\u015fsa, olu\u015fturdu\u011funuz &#8220;Welcome to Example.com!&#8221; sayfas\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<p>E\u011fer ger\u00e7ek bir alan ad\u0131n\u0131z yoksa ve yerel test yap\u0131yorsan\u0131z, bilgisayar\u0131n\u0131z\u0131n <code>\/etc\/hosts<\/code> (Linux\/macOS) veya <code>C:\\Windows\\System32\\drivers\\etc\\hosts<\/code> (Windows) dosyas\u0131na a\u015fa\u011f\u0131daki sat\u0131r\u0131 ekleyerek testi yapabilirsiniz (sunucu_ip_adresiniz yerine sunucunuzun ger\u00e7ek IP adresini yaz\u0131n):<\/p>\n<pre><code class=\"language-\">sunucu_ip_adresiniz example.com www.example.com<\/code><\/pre>\n<p>Bu de\u011fi\u015fiklikten sonra taray\u0131c\u0131n\u0131zdan <code>http:\/\/example.com<\/code> adresine eri\u015fti\u011finizde, Nginx&#8217;in yeni olu\u015fturdu\u011funuz sayfay\u0131 sundu\u011funu g\u00f6receksiniz. Bu, Nginx&#8217;in birden fazla web sitesini ayn\u0131 sunucu \u00fczerinde bar\u0131nd\u0131rma yetene\u011fini (virtual hosting) ba\u015far\u0131l\u0131 bir \u015fekilde yap\u0131land\u0131rd\u0131\u011f\u0131n\u0131z anlam\u0131na gelir.<\/p>\n<h2>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h2>\n<p>Nginx kurulumu ve yap\u0131land\u0131rmas\u0131 s\u0131ras\u0131nda veya sonras\u0131nda baz\u0131 yayg\u0131n sorunlarla kar\u015f\u0131la\u015fabilirsiniz. \u0130\u015fte bunlardan baz\u0131lar\u0131 ve olas\u0131 \u00e7\u00f6z\u00fcmleri:<\/p>\n<p>1.  <strong>Nginx Ba\u015flam\u0131yor veya Yeniden Y\u00fcklenmiyor:<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> <code>sudo systemctl status nginx<\/code> komutu <code>failed<\/code> durumunu g\u00f6steriyor veya <code>sudo systemctl reload nginx<\/code> komutu hata veriyor.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> B\u00fcy\u00fck olas\u0131l\u0131kla yap\u0131land\u0131rma dosyalar\u0131n\u0131zda bir s\u00f6zdizimi hatas\u0131 var. <code>sudo nginx -t<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n. Bu komut, hatan\u0131n hangi dosyada ve hangi sat\u0131rda oldu\u011funu size s\u00f6yleyecektir. Hatalar\u0131 d\u00fczeltip tekrar deneyin. Ayr\u0131ca, 80 veya 443 gibi Nginx&#8217;in dinledi\u011fi portlar\u0131n ba\u015fka bir servis taraf\u0131ndan kullan\u0131l\u0131p kullan\u0131lmad\u0131\u011f\u0131n\u0131 kontrol edin (<code>sudo netstat -tulnp | grep :80<\/code>).<\/p>\n<p>2.  <strong>&#8220;502 Bad Gateway&#8221; Hatas\u0131:<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> Nginx \u00e7al\u0131\u015f\u0131yor ancak web sitenize eri\u015fti\u011finizde taray\u0131c\u0131n\u0131zda &#8220;502 Bad Gateway&#8221; hatas\u0131 g\u00f6r\u00fcyorsunuz.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Bu hata genellikle Nginx&#8217;in bir arka u\u00e7 (backend) uygulamas\u0131yla (\u00f6rn. PHP-FPM, Gunicorn, Node.js uygulamas\u0131) ileti\u015fim kurmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131nda ancak arka ucun \u00e7al\u0131\u015fmamas\u0131 veya Nginx&#8217;in arka uca do\u011fru \u015fekilde ba\u011flanamamas\u0131 durumunda ortaya \u00e7\u0131kar.<br \/>\n        *   Arka u\u00e7 uygulaman\u0131z\u0131n (\u00f6rne\u011fin PHP-FPM) \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol edin: <code>sudo systemctl status php7.2-fpm<\/code> (PHP s\u00fcr\u00fcm\u00fcn\u00fcze g\u00f6re de\u011fi\u015fir).<br \/>\n        *   Nginx yap\u0131land\u0131rma dosyan\u0131zdaki <code>proxy_pass<\/code> direktifinin veya FastCGI ayarlar\u0131n\u0131n do\u011fru oldu\u011fundan emin olun. Arka u\u00e7 uygulamas\u0131n\u0131n dinledi\u011fi soket veya IP:Port adresinin Nginx yap\u0131land\u0131rmas\u0131nda do\u011fru belirtildi\u011fini kontrol edin.<br \/>\n        *   Nginx hata g\u00fcnl\u00fcklerini kontrol edin: <code>\/var\/log\/nginx\/error.log<\/code>. Bu g\u00fcnl\u00fckler, sorunun kayna\u011f\u0131 hakk\u0131nda daha fazla bilgi verebilir.<\/p>\n<p>3.  <strong>&#8220;403 Forbidden&#8221; Hatas\u0131:<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> Web sitenize eri\u015fti\u011finizde &#8220;403 Forbidden&#8221; hatas\u0131 al\u0131yorsunuz.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Bu hata genellikle Nginx&#8217;in istenen dosyaya veya dizine eri\u015fim izni olmad\u0131\u011f\u0131n\u0131 g\u00f6sterir.<br \/>\n        *   Web sitesi k\u00f6k dizininin (<code>root<\/code> direktifinde belirtilen) ve i\u00e7indeki dosyalar\u0131n Nginx&#8217;in \u00e7al\u0131\u015ft\u0131\u011f\u0131 kullan\u0131c\u0131 (genellikle <code>www-data<\/code>) taraf\u0131ndan okunabilir oldu\u011fundan emin olun. <code>sudo chown -R www-data:www-data \/var\/www\/example.com<\/code> ve <code>sudo chmod -R 755 \/var\/www\/example.com<\/code> komutlar\u0131n\u0131 deneyin.<br \/>\n        *   K\u00f6k dizinde <code>index<\/code> direktifinde belirtilen bir dosyan\u0131n (\u00f6rn. <code>index.html<\/code>) mevcut oldu\u011fundan emin olun. E\u011fer dizin listeleme kapal\u0131ysa (varsay\u0131lan olarak kapal\u0131d\u0131r) ve bir <code>index<\/code> dosyas\u0131 yoksa 403 hatas\u0131 al\u0131rs\u0131n\u0131z.<\/p>\n<p>4.  <strong>&#8220;404 Not Found&#8221; Hatas\u0131:<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> Web sitenize eri\u015fti\u011finizde &#8220;404 Not Found&#8221; hatas\u0131 al\u0131yorsunuz.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Bu hata, Nginx&#8217;in istenen kayna\u011f\u0131 bulamad\u0131\u011f\u0131 anlam\u0131na gelir.<br \/>\n        *   Nginx yap\u0131land\u0131rman\u0131zdaki <code>root<\/code> direktifinin do\u011fru web sitesi k\u00f6k dizinini i\u015faret etti\u011finden emin olun.<br \/>\n        *   <code>server_name<\/code> direktifinin do\u011fru alan adlar\u0131n\u0131 i\u00e7erdi\u011finden emin olun.<br \/>\n        *   <code>location<\/code> bloklar\u0131n\u0131zdaki <code>try_files<\/code> direktifinin do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan emin olun. Dosya yollar\u0131n\u0131 ve dosya adlar\u0131n\u0131 dikkatlice kontrol edin.<br \/>\n        *   \u0130stenen dosyan\u0131n ger\u00e7ekten belirtilen yolda mevcut olup olmad\u0131\u011f\u0131n\u0131 kontrol edin.<\/p>\n<p>5.  <strong>Web Sitesine D\u0131\u015far\u0131dan Eri\u015filemiyor (Ba\u011flant\u0131 Zaman A\u015f\u0131m\u0131):<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> Nginx \u00e7al\u0131\u015f\u0131yor ve yerel olarak eri\u015filebiliyor ancak d\u0131\u015far\u0131dan bir taray\u0131c\u0131 ile IP adresine veya alan ad\u0131na eri\u015fmeye \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131zda ba\u011flant\u0131 zaman a\u015f\u0131m\u0131na u\u011fruyor.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Bu genellikle g\u00fcvenlik duvar\u0131 sorunudur.<br \/>\n        *   UFW&#8217;nin etkin olup olmad\u0131\u011f\u0131n\u0131 ve Nginx i\u00e7in gerekli portlara (80 ve\/veya 443) izin veren kurallar\u0131n olup olmad\u0131\u011f\u0131n\u0131 kontrol edin: <code>sudo ufw status<\/code>.<br \/>\n        *   E\u011fer bir bulut sa\u011flay\u0131c\u0131s\u0131 (AWS, Google Cloud, Azure, DigitalOcean vb.) kullan\u0131yorsan\u0131z, sa\u011flay\u0131c\u0131n\u0131z\u0131n kendi g\u00fcvenlik duvar\u0131 (security groups, firewall rules) ayarlar\u0131n\u0131 kontrol edin ve 80\/443 portlar\u0131na gelen trafi\u011fe izin verildi\u011finden emin olun.<\/p>\n<p>6.  <strong>De\u011fi\u015fiklikler Uygulanm\u0131yor:<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> Yap\u0131land\u0131rma dosyas\u0131nda de\u011fi\u015fiklik yapt\u0131n\u0131z ancak web sitesinde bir etki g\u00f6rm\u00fcyorsunuz.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Nginx yap\u0131land\u0131rma dosyalar\u0131nda de\u011fi\u015fiklik yapt\u0131ktan sonra, 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> komutunu kulland\u0131\u011f\u0131n\u0131zdan emin olun. \u00d6nce <code>sudo nginx -t<\/code> ile yap\u0131land\u0131rmay\u0131 test etmeyi unutmay\u0131n.<\/p>\n<p><strong>G\u00fcnl\u00fck Dosyalar\u0131n\u0131 Kontrol Etme:<\/strong><br \/>\nKar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z herhangi bir sorun i\u00e7in Nginx&#8217;in g\u00fcnl\u00fck dosyalar\u0131n\u0131 kontrol etmek, sorunun kayna\u011f\u0131n\u0131 belirlemede en \u00f6nemli ad\u0131md\u0131r:<br \/>\n*   <strong>Eri\u015fim g\u00fcnl\u00fckleri:<\/strong> <code>\/var\/log\/nginx\/access.log<\/code> (Web sitenize yap\u0131lan t\u00fcm istekleri kaydeder)<br \/>\n*   <strong>Hata g\u00fcnl\u00fckleri:<\/strong> <code>\/var\/log\/nginx\/error.log<\/code> (Nginx&#8217;in kar\u015f\u0131la\u015ft\u0131\u011f\u0131 t\u00fcm hatalar\u0131 kaydeder)<br \/>\nBu g\u00fcnl\u00fck dosyalar\u0131n\u0131 <code>tail -f \/var\/log\/nginx\/error.log<\/code> gibi komutlarla canl\u0131 olarak izleyerek sorunlar\u0131 an\u0131nda tespit edebilirsiniz.<\/p>\n<p>Bu s\u0131k kar\u015f\u0131la\u015f\u0131lan sorunlar ve \u00e7\u00f6z\u00fcmleri, Nginx yap\u0131land\u0131rman\u0131zda ortaya \u00e7\u0131kabilecek \u00e7o\u011fu problemi gidermenize yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Bu kapsaml\u0131 rehberde, Ubuntu 18.04 sunucunuz \u00fczerine Nginx web sunucusunu ba\u015far\u0131yla kurmay\u0131 ve temel yap\u0131land\u0131rmas\u0131n\u0131 yapmay\u0131 \u00f6\u011frendiniz. Nginx&#8217;in ne oldu\u011fu, neden tercih edildi\u011fi ve sisteminizde nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131 hakk\u0131nda temel bir anlay\u0131\u015f kazand\u0131n\u0131z.<\/p>\n<p>Ad\u0131m ad\u0131m ilerleyerek \u015funlar\u0131 ger\u00e7ekle\u015ftirdiniz:<\/p>\n<p>*   Sisteminizi g\u00fcncellediniz ve Nginx kurulumu i\u00e7in haz\u0131rlad\u0131n\u0131z.<br \/>\n*   Ubuntu depolar\u0131ndan Nginx&#8217;i y\u00fcklediniz ve servis durumunu kontrol ettiniz.<br \/>\n*   UFW g\u00fcvenlik duvar\u0131n\u0131 yap\u0131land\u0131rarak Nginx&#8217;e d\u0131\u015far\u0131dan eri\u015fimi sa\u011flad\u0131n\u0131z.<br \/>\n*   Kurulumu bir web taray\u0131c\u0131s\u0131 \u00fczerinden do\u011frulayarak &#8220;Welcome to Nginx!&#8221; sayfas\u0131n\u0131 g\u00f6r\u00fcnt\u00fclediniz.<br \/>\n*   Nginx servisini ba\u015flatma, durdurma, yeniden ba\u015flatma ve yap\u0131land\u0131rma de\u011fi\u015fikliklerini yeniden y\u00fckleme gibi temel y\u00f6netim komutlar\u0131n\u0131 \u00f6\u011frendiniz.<br \/>\n*   Nginx&#8217;in ana yap\u0131land\u0131rma dosyalar\u0131n\u0131, sunucu bloklar\u0131n\u0131n (<code>sites-available<\/code> ve <code>sites-enabled<\/code>) nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve genel yap\u0131land\u0131rma hiyerar\u015fisini anlad\u0131n\u0131z.<br \/>\n*   Kendi alan ad\u0131n\u0131z i\u00e7in \u00f6zel bir sunucu blo\u011fu olu\u015fturarak basit bir web sitesini Nginx \u00fczerinden yay\u0131nlamay\u0131 ba\u015fard\u0131n\u0131z.<br \/>\n*   S\u0131k kar\u015f\u0131la\u015f\u0131lan sorunlar ve bu sorunlar\u0131n nas\u0131l giderilece\u011fi hakk\u0131nda bilgi edindiniz.<\/p>\n<p>Nginx, y\u00fcksek performansl\u0131 ve esnek bir web sunucusu olmas\u0131n\u0131n yan\u0131 s\u0131ra, ters proxy, y\u00fck dengeleyici ve HTTP \u00f6nbelle\u011fi gibi geli\u015fmi\u015f i\u015flevleri de yerine getirebilen g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. Bu rehber, Nginx ile yolculu\u011funuzun sadece ba\u015flang\u0131c\u0131d\u0131r.<\/p>\n<p><strong>Sonraki Ad\u0131mlar:<\/strong><\/p>\n<p>*   <strong>HTTPS (SSL\/TLS) Kurulumu:<\/strong> Web sitenizin g\u00fcvenli\u011fini art\u0131rmak i\u00e7in Let&#8217;s Encrypt gibi \u00fccretsiz sertifika sa\u011flay\u0131c\u0131lar\u0131 kullanarak HTTPS&#8217;i etkinle\u015ftirmeyi \u00f6\u011frenin.<br \/>\n*   <strong>Performans Optimizasyonu:<\/strong> Nginx&#8217;in performans\u0131n\u0131 daha da art\u0131rmak i\u00e7in Gzip s\u0131k\u0131\u015ft\u0131rma, \u00f6nbellekleme ve ba\u011flant\u0131 ayarlar\u0131 gibi ileri d\u00fczey yap\u0131land\u0131rmalar\u0131 ke\u015ffedin.<br \/>\n*   <strong>Ters Proxy ve Y\u00fck Dengeleme:<\/strong> Nginx&#8217;i birden fazla backend uygulamas\u0131 \u00f6n\u00fcnde bir ters proxy olarak kullanmay\u0131 veya y\u00fcksek trafikli siteler i\u00e7in y\u00fck dengeleme \u00e7\u00f6z\u00fcmleri olu\u015fturmay\u0131 deneyin.<br \/>\n*   <strong>PHP veya Di\u011fer Uygulama Sunucular\u0131 ile Entegrasyon:<\/strong> Dinamik i\u00e7erik sunmak i\u00e7in Nginx&#8217;i PHP-FPM, Gunicorn (Python), Passenger (Ruby) gibi uygulama sunucular\u0131yla nas\u0131l entegre edece\u011finizi ara\u015ft\u0131r\u0131n.<br \/>\n*   <strong>G\u00fcvenlik \u0130yile\u015ftirmeleri:<\/strong> Nginx&#8217;i daha g\u00fcvenli hale getirmek i\u00e7in \u00e7e\u015fitli g\u00fcvenlik ba\u015fl\u0131klar\u0131, DDoS korumas\u0131 ve eri\u015fim kontrol listeleri (ACL) gibi konular\u0131 inceleyin.<\/p>\n<p>Nginx&#8217;in g\u00fcc\u00fc ve esnekli\u011fi, onu modern web altyap\u0131lar\u0131n\u0131n vazge\u00e7ilmez bir bile\u015feni haline getirmektedir. Bu rehberle edindi\u011finiz temel bilgilerle, kendi projelerinizi ba\u015far\u0131yla hayata ge\u00e7irebilir ve Nginx&#8217;in sundu\u011fu olanaklar\u0131 ke\u015ffetmeye devam edebilirsiniz. Ba\u015far\u0131lar dileriz!<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu 18.04 \u00dczerine Nginx Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7 Rehberi]\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda web sitelerinin ve uygulamalar\u0131n h\u0131z","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-30551","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>Ubuntu 18.04 \u00dczerine Nginx Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7 Rehberi] - 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\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ubuntu 18.04 \u00dczerine Nginx Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7 Rehberi]\" \/>\n<meta property=\"og:description\" content=\"Ubuntu 18.04 \u00dczerine Nginx Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7 Rehberi] Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda web sitelerinin ve uygulamalar\u0131n h\u0131z\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-29T02:41:08+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=\"26 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ubuntu 18.04 \u00dczerine Nginx Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7 Rehberi]\",\"datePublished\":\"2025-09-29T02:41:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/\"},\"wordCount\":4498,\"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\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/\",\"name\":\"Ubuntu 18.04 \u00dczerine Nginx Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7 Rehberi] - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-09-29T02:41:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu 18.04 \u00dczerine Nginx Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7 Rehberi]\"}]},{\"@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":"Ubuntu 18.04 \u00dczerine Nginx Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7 Rehberi] - 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\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Ubuntu 18.04 \u00dczerine Nginx Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7 Rehberi]","og_description":"Ubuntu 18.04 \u00dczerine Nginx Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7 Rehberi] Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda web sitelerinin ve uygulamalar\u0131n h\u0131z","og_url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-09-29T02:41:08+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"26 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ubuntu 18.04 \u00dczerine Nginx Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7 Rehberi]","datePublished":"2025-09-29T02:41:08+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/"},"wordCount":4498,"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\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/","name":"Ubuntu 18.04 \u00dczerine Nginx Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7 Rehberi] - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-09-29T02:41:08+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-nginx-kurulumu-hizli-baslangic-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu 18.04 \u00dczerine Nginx Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7 Rehberi]"}]},{"@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\/30551","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=30551"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30551\/revisions"}],"predecessor-version":[{"id":30552,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30551\/revisions\/30552"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=30551"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=30551"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=30551"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}