{"id":37827,"date":"2026-01-16T12:40:50","date_gmt":"2026-01-16T09:40:50","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37827"},"modified":"2026-01-16T12:40:50","modified_gmt":"2026-01-16T09:40:50","slug":"nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/","title":{"rendered":"Nginx Web K\u00f6k\u00fcn\u00fc Ubuntu 22.04&#8217;te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>Nginx Web K\u00f6k\u00fcn\u00fc Ubuntu 22.04&#8217;te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi<\/h2>\n<p>Bu kapsaml\u0131 rehber, Nginx web sunucunuzun web k\u00f6k dizinini Ubuntu 22.04 i\u015fletim sisteminde g\u00fcvenli ve verimli bir \u015fekilde yeni bir konuma nas\u0131l ta\u015f\u0131yaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klamaktad\u0131r. Web k\u00f6k\u00fcn\u00fc ta\u015f\u0131ma ihtiyac\u0131, disk alan\u0131 y\u00f6netimi, g\u00fcvenlik endi\u015feleri, daha iyi organizasyon veya performans\u0131 art\u0131rma gibi \u00e7e\u015fitli nedenlerden kaynaklanabilir. Bu i\u015flem, dikkatli planlama ve uygulama gerektirse de, do\u011fru ad\u0131mlar izlendi\u011finde sorunsuz bir \u015fekilde tamamlanabilir.<\/p>\n<h3>Giri\u015f<\/h3>\n<p>Nginx, y\u00fcksek performansl\u0131, a\u00e7\u0131k kaynakl\u0131 bir web sunucusu ve ters proxy sunucusudur. Genellikle web sitelerini bar\u0131nd\u0131rmak ve statik i\u00e7erik sunmak i\u00e7in kullan\u0131l\u0131r. Varsay\u0131lan olarak, Nginx Ubuntu sistemlerinde web sitenizin dosyalar\u0131n\u0131 <code>\/var\/www\/html<\/code> dizininde bar\u0131nd\u0131r\u0131r. Ancak, baz\u0131 durumlarda bu varsay\u0131lan konumu de\u011fi\u015ftirmek isteyebilirsiniz. \u00d6rne\u011fin:<\/p>\n<p>*   <strong>Disk Alan\u0131 Y\u00f6netimi:<\/strong> Mevcut disk b\u00f6l\u00fcm\u00fcn\u00fczde yer kalmad\u0131\u011f\u0131nda veya web i\u00e7eri\u011finizi daha b\u00fcy\u00fck bir depolama birimine (\u00f6rne\u011fin, ayr\u0131 bir SSD veya a\u011f depolamas\u0131) ta\u015f\u0131mak istedi\u011finizde.<br \/>\n*   <strong>Organizasyon ve Standardizasyon:<\/strong> Sunucunuzda birden fazla web sitesi bar\u0131nd\u0131r\u0131yorsan\u0131z ve web k\u00f6klerini <code>\/srv\/www<\/code> veya <code>\/opt\/www<\/code> gibi daha yap\u0131land\u0131r\u0131lm\u0131\u015f bir dizin alt\u0131nda toplamak istiyorsan\u0131z.<br \/>\n*   <strong>G\u00fcvenlik:<\/strong> Web k\u00f6k\u00fcn\u00fc sistem dosyalar\u0131ndan ayr\u0131 bir konuma ta\u015f\u0131mak, potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 azaltmaya yard\u0131mc\u0131 olabilir.<br \/>\n*   <strong>Performans:<\/strong> Web sitesi dosyalar\u0131n\u0131 daha h\u0131zl\u0131 bir diske (\u00f6rne\u011fin NVMe SSD) ta\u015f\u0131mak, sayfa y\u00fckleme s\u00fcrelerini iyile\u015ftirebilir.<\/p>\n<p>Bu rehber, bu i\u015flemi ger\u00e7ekle\u015ftirirken kar\u015f\u0131la\u015fabilece\u011finiz t\u00fcm \u00f6nemli ad\u0131mlar\u0131, dikkat etmeniz gereken noktalar\u0131 ve potansiyel sorun giderme y\u00f6ntemlerini ele alacakt\u0131r.<\/p>\n<h3>\u00d6n Ko\u015fullar<\/h3>\n<p>Nginx web k\u00f6k\u00fcn\u00fcz\u00fc ta\u015f\u0131madan \u00f6nce a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n mevcut oldu\u011fundan emin olun:<\/p>\n<p>*   <strong>Ubuntu 22.04 Sunucusu:<\/strong> \u0130\u015fletim sisteminizin Ubuntu 22.04 LTS (Jammy Jellyfish) olmas\u0131 gerekmektedir.<br \/>\n*   <strong>Nginx Kurulumu:<\/strong> Sunucunuzda Nginx&#8217;in kurulu ve yap\u0131land\u0131r\u0131lm\u0131\u015f olmas\u0131.<br \/>\n*   <strong>Sudo Yetkileri:<\/strong> \u0130\u015flemleri ger\u00e7ekle\u015ftirmek i\u00e7in <code>sudo<\/code> yetkilerine sahip bir kullan\u0131c\u0131 hesab\u0131n\u0131z\u0131n olmas\u0131.<br \/>\n*   <strong>Temel Linux Bilgisi:<\/strong> Komut sat\u0131r\u0131 (CLI) kullan\u0131m\u0131 ve temel dosya sistemi komutlar\u0131 hakk\u0131nda bilgi sahibi olmak.<br \/>\n*   <strong>Yedekleme Anlay\u0131\u015f\u0131:<\/strong> Herhangi bir kritik sistem de\u011fi\u015fikli\u011finden \u00f6nce yedekleme yapman\u0131n \u00f6nemini kavram\u0131\u015f olmak.<\/p>\n<h3>Planlama ve Haz\u0131rl\u0131k<\/h3>\n<p>Web k\u00f6k\u00fcn\u00fc ta\u015f\u0131ma i\u015flemi, hassas bir operasyondur ve dikkatli bir planlama gerektirir. Bu b\u00f6l\u00fcm, ta\u015f\u0131ma i\u015flemine ba\u015flamadan \u00f6nce yapman\u0131z gereken haz\u0131rl\u0131klar\u0131 detayland\u0131r\u0131r.<\/p>\n<h4>Yeni Konumu Se\u00e7me<\/h4>\n<p>Web sitenizin dosyalar\u0131n\u0131 ta\u015f\u0131mak istedi\u011finiz yeni dizin yolunu dikkatlice se\u00e7melisiniz. Genellikle \u00f6nerilen baz\u0131 konumlar \u015funlard\u0131r:<\/p>\n<p>*   <code>\/srv\/www\/your_site_name<\/code>: Sunucuya \u00f6zel veriler i\u00e7in standart bir konum.<br \/>\n*   <code>\/opt\/www\/your_site_name<\/code>: \u0130ste\u011fe ba\u011fl\u0131 yaz\u0131l\u0131m paketleri i\u00e7in standart bir konum.<br \/>\n*   <code>\/mnt\/data\/your_site_name<\/code>: Ayr\u0131 bir disk b\u00f6l\u00fcm\u00fcne veya harici depolamaya ba\u011flanan bir dizin.<\/p>\n<p>Yeni konumun yeterli disk alan\u0131na sahip oldu\u011fundan ve uygun izinlerin ayarlanabilece\u011fi bir yer oldu\u011fundan emin olun. \u00d6rne\u011fin, yeni konum <code>\/home\/kullanici\/web_sitesi<\/code> gibi bir kullan\u0131c\u0131 dizini alt\u0131nda olmamal\u0131d\u0131r, \u00e7\u00fcnk\u00fc bu t\u00fcr dizinler genellikle web sunucusu s\u00fcre\u00e7leri i\u00e7in uygun izinlere sahip de\u011fildir ve g\u00fcvenlik riski olu\u015fturabilir.<\/p>\n<h4>Verilerinizi Yedekleme<\/h4>\n<p>Bu, ta\u015f\u0131ma i\u015fleminin en kritik ad\u0131mlar\u0131ndan biridir. Herhangi bir hata durumunda web sitenizi eski haline d\u00f6nd\u00fcrebilmek i\u00e7in mutlaka kapsaml\u0131 bir yedekleme yapmal\u0131s\u0131n\u0131z.<\/p>\n<p>*   <strong>Nginx Yap\u0131land\u0131rma Dosyalar\u0131:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo tar -czvf \/root\/nginx_conf_backup_$(date +%Y%m%d).tar.gz \/etc\/nginx<\/code><\/pre>\n<p>    Bu komut, Nginx&#8217;in t\u00fcm yap\u0131land\u0131rma dizinini s\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f bir ar\u015fiv dosyas\u0131na yedekler.<br \/>\n*   <strong>Web Sitesi Dosyalar\u0131:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo tar -czvf \/root\/website_files_backup_$(date +%Y%m%d).tar.gz \/var\/www\/html<\/code><\/pre>\n<p>    Bu komut, mevcut web sitenizin t\u00fcm dosyalar\u0131n\u0131 s\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f bir ar\u015fiv dosyas\u0131na yedekler. E\u011fer farkl\u0131 bir web k\u00f6k\u00fcn\u00fcz varsa, o dizini yedeklemelisiniz.<br \/>\n*   <strong>Veritaban\u0131 Yedeklemesi (Opsiyonel ama \u00d6nemli):<\/strong> Web siteniz bir veritaban\u0131 kullan\u0131yorsa (\u00f6rne\u011fin MySQL\/MariaDB, PostgreSQL), ta\u015f\u0131ma i\u015flemi do\u011frudan veritaban\u0131n\u0131 etkilemese de, bir web sitesi ta\u015f\u0131ma operasyonunun bir par\u00e7as\u0131 olarak veritaban\u0131n\u0131 da yedeklemek iyi bir uygulamad\u0131r.<\/p>\n<pre><code class=\"language-bash\"># MySQL\/MariaDB i\u00e7in \u00f6rnek\n    sudo mysqldump -u root -p veritabani_adi > \/root\/veritabani_adi_backup_$(date +%Y%m%d).sql<\/code><\/pre>\n<p>    Yedek dosyalar\u0131n\u0131 g\u00fcvenli bir yere (\u00f6rne\u011fin, uzak bir depolama sunucusu) kopyalaman\u0131z \u015fiddetle tavsiye edilir.<\/p>\n<h4>Kullan\u0131c\u0131lar\u0131 Bilgilendirme ve Kesinti Planlama<\/h4>\n<p>E\u011fer ta\u015f\u0131d\u0131\u011f\u0131n\u0131z bir canl\u0131 (production) web sitesi ise, kullan\u0131c\u0131lar\u0131n\u0131z\u0131 olas\u0131 bir kesinti hakk\u0131nda bilgilendirmeniz ve bu i\u015flemi d\u00fc\u015f\u00fck trafikli bir zamanda yapman\u0131z \u00f6nemlidir. K\u0131sa bir bak\u0131m modu sayfas\u0131 g\u00f6stermeyi d\u00fc\u015f\u00fcnebilirsiniz.<\/p>\n<h3>Ad\u0131m Ad\u0131m Rehber<\/h3>\n<p>\u015eimdi Nginx web k\u00f6k\u00fcn\u00fc yeni bir konuma ta\u015f\u0131ma i\u015flemini ad\u0131m ad\u0131m ger\u00e7ekle\u015ftirelim.<\/p>\n<h4>1. Nginx&#8217;i Durdurma<\/h4>\n<p>Ta\u015f\u0131ma i\u015flemi s\u0131ras\u0131nda web sunucusunun dosyalara yazmas\u0131n\u0131 veya okumas\u0131n\u0131 engellemek i\u00e7in Nginx hizmetini durdurmal\u0131s\u0131n\u0131z. Bu, dosya tutarl\u0131l\u0131\u011f\u0131n\u0131 sa\u011flar ve olas\u0131 veri bozulmalar\u0131n\u0131 \u00f6nler.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop nginx<\/code><\/pre>\n<p>Nginx&#8217;in durduruldu\u011funu do\u011frulamak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status nginx<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>Active: inactive (dead)<\/code> ifadesini g\u00f6rmelisiniz.<\/p>\n<h4>2. Web Sitesi Dosyalar\u0131n\u0131 Yeni Konuma Ta\u015f\u0131ma<\/h4>\n<p>\u015eimdi web sitenizin mevcut dosyalar\u0131n\u0131 yeni se\u00e7ti\u011finiz konuma kopyalayaca\u011f\u0131z. Bu i\u015flem i\u00e7in <code>rsync<\/code> komutunu kullanmak, <code>cp<\/code> komutuna g\u00f6re daha g\u00fcvenli ve etkilidir, \u00e7\u00fcnk\u00fc dosya izinlerini, sahipli\u011fini ve zaman damgalar\u0131n\u0131 korur ve b\u00fcy\u00fck dosya setleri i\u00e7in daha dayan\u0131kl\u0131d\u0131r.<\/p>\n<p>\u00d6ncelikle yeni web k\u00f6k\u00fc dizinini olu\u015fturun:<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/path\/to\/new\/webroot<\/code><\/pre>\n<p>\u00d6rnek olarak, <code>\/srv\/www\/mywebsite<\/code> dizinini kullanaca\u011f\u0131z:<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/srv\/www\/mywebsite<\/code><\/pre>\n<p>\u015eimdi dosyalar\u0131 kopyalay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo rsync -avz \/var\/www\/html\/ \/srv\/www\/mywebsite\/<\/code><\/pre>\n<p>*   <code>-a<\/code>: Ar\u015fiv modu; izinleri, sahipli\u011fi, zaman damgalar\u0131n\u0131 ve sembolik ba\u011flant\u0131lar\u0131 korur (rek\u00fcrsif kopyalamay\u0131 da i\u00e7erir).<br \/>\n*   <code>-v<\/code>: Ayr\u0131nt\u0131l\u0131 \u00e7\u0131kt\u0131 verir, b\u00f6ylece hangi dosyalar\u0131n kopyaland\u0131\u011f\u0131n\u0131 g\u00f6rebilirsiniz.<br \/>\n*   <code>-z<\/code>: S\u0131k\u0131\u015ft\u0131rma kullan\u0131r (iste\u011fe ba\u011fl\u0131, ancak a\u011f \u00fczerinden kopyalama yaparken faydal\u0131d\u0131r).<br \/>\n*   <code>\/var\/www\/html\/<\/code>: Kaynak dizin (sonundaki e\u011fik \u00e7izgi \u00f6nemlidir, dizinin i\u00e7eri\u011fini kopyalar).<br \/>\n*   <code>\/srv\/www\/mywebsite\/<\/code>: Hedef dizin.<\/p>\n<p>Dosyalar\u0131n ba\u015far\u0131yla kopyaland\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in yeni dizinin i\u00e7eri\u011fini listeleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">ls -la \/srv\/www\/mywebsite\/<\/code><\/pre>\n<p>Eski dosyalar\u0131 do\u011frudan silmek yerine, onlar\u0131 bir s\u00fcre yedek olarak tutmak veya yeniden adland\u0131rmak daha g\u00fcvenlidir. Dosyalar\u0131n yeni konumda do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olduktan sonra eski dizini silebilirsiniz.<\/p>\n<pre><code class=\"language-bash\"># Eski dizini yeniden adland\u0131rma (g\u00fcvenli y\u00f6ntem)\nsudo mv \/var\/www\/html \/var\/www\/html_old\n\n<h2>Veya, emin olduktan sonra tamamen silme (dikkatli olun!)<\/h2>\n<h2>sudo rm -rf \/var\/www\/html<\/code><\/pre>\n<\/h2>\n<h4>3. Yeni Konuma \u0130zinleri Ayarlama<\/h4>\n<p>Nginx&#8217;in web sitenizin dosyalar\u0131na do\u011fru \u015fekilde eri\u015febilmesi i\u00e7in yeni web k\u00f6k\u00fc dizininin ve i\u00e7erdi\u011fi dosyalar\u0131n do\u011fru sahiplik ve izinlere sahip olmas\u0131 gerekir. Nginx genellikle <code>www-data<\/code> kullan\u0131c\u0131s\u0131 ve grubu alt\u0131nda \u00e7al\u0131\u015f\u0131r.<\/p>\n<p>Dosya sahipli\u011fini <code>www-data<\/code> kullan\u0131c\u0131s\u0131na ve grubuna atay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo chown -R www-data:www-data \/srv\/www\/mywebsite<\/code><\/pre>\n<p>*   <code>-R<\/code>: \u00d6zyinelemeli olarak, dizinin i\u00e7indeki t\u00fcm dosya ve alt dizinler i\u00e7in sahipli\u011fi de\u011fi\u015ftirir.<\/p>\n<p>Ard\u0131ndan, do\u011fru dosya izinlerini ayarlay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo chmod -R 755 \/srv\/www\/mywebsite<\/code><\/pre>\n<p>*   <code>-R<\/code>: \u00d6zyinelemeli olarak, dizinin i\u00e7indeki t\u00fcm dosya ve alt dizinler i\u00e7in izinleri de\u011fi\u015ftirir.<br \/>\n*   <code>755<\/code>: Dizinin sahibi i\u00e7in okuma, yazma ve \u00e7al\u0131\u015ft\u0131rma izinleri (7), grup \u00fcyeleri ve di\u011ferleri i\u00e7in okuma ve \u00e7al\u0131\u015ft\u0131rma izinleri (5) verir. Bu, web sunucusunun dosyalara eri\u015fmesi i\u00e7in genellikle yeterli ve g\u00fcvenli bir ayard\u0131r.<\/p>\n<p>Daha k\u0131s\u0131tl\u0131 bir izin olan 644 (sahip okuma\/yazma, di\u011ferleri sadece okuma) genellikle statik dosyalar i\u00e7in kullan\u0131l\u0131rken, 755 dizinler ve \u00e7al\u0131\u015ft\u0131r\u0131labilir betikler (\u00f6rne\u011fin PHP dosyalar\u0131) i\u00e7in daha uygundur.<\/p>\n<h4>4. Nginx Yap\u0131land\u0131rmas\u0131n\u0131 G\u00fcncelleme<\/h4>\n<p>Nginx&#8217;e web sitenizin dosyalar\u0131n\u0131n art\u0131k yeni konumda oldu\u011funu bildirmeniz gerekir. Bu, Nginx yap\u0131land\u0131rma dosyalar\u0131ndaki <code>root<\/code> direktifini g\u00fcncelleyerek yap\u0131l\u0131r.<\/p>\n<p>Genellikle, site yap\u0131land\u0131rma dosyalar\u0131 <code>\/etc\/nginx\/sites-available\/<\/code> dizininde bulunur. Varsay\u0131lan yap\u0131land\u0131rma dosyas\u0131 <code>default<\/code> veya kendi \u00f6zel yap\u0131land\u0131rma dosyan\u0131z\u0131n ad\u0131 olabilir.<\/p>\n<p>\u00d6rne\u011fin, varsay\u0131lan yap\u0131land\u0131rma dosyas\u0131n\u0131 d\u00fczenleyelim:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/default<\/code><\/pre>\n<p>Bu dosyan\u0131n i\u00e7inde, <code>server<\/code> blo\u011funun i\u00e7inde <code>root<\/code> direktifini bulun. Genellikle \u015f\u00f6yle bir sat\u0131r g\u00f6r\u00fcrs\u00fcn\u00fcz:<\/p>\n<pre><code class=\"language-nginx\">root \/var\/www\/html;<\/code><\/pre>\n<p>Bu sat\u0131r\u0131 yeni web k\u00f6k\u00fc yolunuzla g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-nginx\">root \/srv\/www\/mywebsite;<\/code><\/pre>\n<p>De\u011fi\u015fikli\u011fi kaydedin (Ctrl+O) ve d\u00fczenleyiciden \u00e7\u0131k\u0131n (Ctrl+X).<\/p>\n<p><strong>\u00d6nemli Not:<\/strong> E\u011fer Nginx yap\u0131land\u0131rman\u0131zda <code>alias<\/code> direktifi kullan\u0131l\u0131yorsa (genellikle bir <code>location<\/code> blo\u011fu i\u00e7inde), bu direktif <code>root<\/code> direktifinden farkl\u0131 \u00e7al\u0131\u015f\u0131r. <code>root<\/code> direktifi, URL&#8217;yi do\u011frudan dosya sistemindeki bir yola e\u015flerken, <code>alias<\/code> direktifi bir URL \u00f6n ekini kald\u0131r\u0131r ve kalan k\u0131sm\u0131 belirtilen dizinle birle\u015ftirir. \u00c7o\u011fu tam web k\u00f6k\u00fc ta\u015f\u0131ma senaryosunda <code>root<\/code> direktifi yeterlidir. E\u011fer <code>alias<\/code> kullan\u0131yorsan\u0131z, onun da do\u011fru yolu g\u00f6sterdi\u011finden emin olman\u0131z gerekir.<\/p>\n<p>Birden fazla web siteniz varsa, her bir sitenin kendi yap\u0131land\u0131rma dosyas\u0131n\u0131 (\u00f6rne\u011fin <code>\/etc\/nginx\/sites-available\/your_domain.conf<\/code>) d\u00fczenlemeniz ve ilgili <code>root<\/code> direktiflerini g\u00fcncellemeniz gerekecektir.<\/p>\n<h4>5. SELinux veya AppArmor Ayarlar\u0131n\u0131 Kontrol Etme<\/h4>\n<p>Ubuntu 22.04 varsay\u0131lan olarak AppArmor kullan\u0131r. Bu g\u00fcvenlik mod\u00fclleri, Nginx&#8217;in belirli dizinlere eri\u015fimini k\u0131s\u0131tlayabilir. E\u011fer Nginx&#8217;iniz yeni web k\u00f6k\u00fcne eri\u015femezse, &#8220;403 Forbidden&#8221; hatalar\u0131 alabilirsiniz.<\/p>\n<p><strong>AppArmor:<\/strong><\/p>\n<p>AppArmor&#8217;\u0131n durumunu kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo aa-status<\/code><\/pre>\n<p>E\u011fer Nginx i\u00e7in zorlay\u0131c\u0131 bir profil (<code>\/usr\/sbin\/nginx<\/code>) varsa ve yeni web k\u00f6k\u00fcn\u00fcz bu profil taraf\u0131ndan kapsanmayan bir dizindeyse, Nginx&#8217;in eri\u015fimi engellenebilir.<\/p>\n<p>AppArmor profilini ge\u00e7ici olarak \u015fikayet moduna almak (hata mesajlar\u0131n\u0131 kaydeder ama engellemez) veya kal\u0131c\u0131 olarak g\u00fcncellemek i\u00e7in se\u00e7enekleriniz vard\u0131r:<\/p>\n<p>*   <strong>Ge\u00e7ici olarak \u015fikayet moduna alma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo aa-complain \/usr\/sbin\/nginx<\/code><\/pre>\n<p>    Bu, Nginx&#8217;in AppArmor k\u0131s\u0131tlamalar\u0131na uymad\u0131\u011f\u0131nda hata vermesine ra\u011fmen \u00e7al\u0131\u015fmas\u0131na izin verir. Test ama\u00e7l\u0131 kullan\u0131labilir.<br \/>\n*   <strong>AppArmor profilini g\u00fcncelleme:<\/strong><br \/>\n    Bu, daha kal\u0131c\u0131 ve g\u00fcvenli bir \u00e7\u00f6z\u00fcmd\u00fcr. Nginx&#8217;in AppArmor profiline yeni web k\u00f6k\u00fc dizinine eri\u015fim izni eklemeniz gerekir.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/apparmor.d\/usr.sbin.nginx<\/code><\/pre>\n<p>    Bu dosyan\u0131n i\u00e7inde, Nginx&#8217;in eri\u015fim izinlerini tan\u0131mlayan kurallar bulunur. Genellikle <code>\/var\/www\/<em><\/em> r,<\/code> gibi sat\u0131rlar g\u00f6r\u00fcrs\u00fcn\u00fcz. Yeni web k\u00f6k\u00fcn\u00fcz i\u00e7in benzer bir sat\u0131r eklemeniz gerekebilir:<\/p>\n<pre><code class=\"language-\"># Mevcut sat\u0131rlara ek olarak veya de\u011fi\u015ftirerek\n    \/srv\/www\/mywebsite\/<em><\/em> r,\n    \/srv\/www\/mywebsite\/<em><\/em> rw, # E\u011fer Nginx'in bu dizine yazmas\u0131 gerekiyorsa (\u00f6rne\u011fin cache)<\/code><\/pre>\n<p>    De\u011fi\u015fiklikleri kaydettikten sonra AppArmor profillerini yeniden y\u00fckleyin:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl reload apparmor<\/code><\/pre>\n<p>    Ya da daha kapsaml\u0131 bir g\u00fcncelleme i\u00e7in <code>aa-logprof<\/code> arac\u0131n\u0131 kullanabilirsiniz. Bu ara\u00e7, AppArmor loglar\u0131n\u0131 tarar ve size yeni kurallar \u00f6nerebilir:<\/p>\n<pre><code class=\"language-bash\">sudo apt install apparmor-utils\n    sudo aa-logprof<\/code><\/pre>\n<p>    <code>aa-logprof<\/code> \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda, Nginx&#8217;in eri\u015femedi\u011fi yeni yollarla ilgili sorular sorar ve profilinizi otomatik olarak g\u00fcncellemeyi teklif eder.<\/p>\n<p><strong>SELinux (Ubuntu&#8217;da Nadir, Red Hat tabanl\u0131 sistemlerde yayg\u0131n):<\/strong><\/p>\n<p>E\u011fer sunucunuzda SELinux etkinse (Ubuntu&#8217;da varsay\u0131lan de\u011fildir), Nginx&#8217;in yeni web k\u00f6k\u00fcne eri\u015febilmesi i\u00e7in SELinux ba\u011flam\u0131n\u0131 ayarlaman\u0131z gerekir.<\/p>\n<p>SELinux durumunu kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sestatus<\/code><\/pre>\n<p>E\u011fer SELinux etkinse, yeni web k\u00f6k\u00fc dizinine <code>httpd_sys_content_t<\/code> ba\u011flam\u0131n\u0131 uygulaman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo chcon -R -t httpd_sys_content_t \/srv\/www\/mywebsite\nsudo restorecon -R \/srv\/www\/mywebsite<\/code><\/pre>\n<p>Bu komutlar, SELinux&#8217;a Nginx&#8217;in bu dizindeki dosyalara eri\u015fmesine izin verildi\u011fini bildirir.<\/p>\n<h4>6. Nginx Yap\u0131land\u0131rmas\u0131n\u0131 Test Etme ve Ba\u015flatma<\/h4>\n<p>Yap\u0131land\u0131rma dosyas\u0131nda yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin bir s\u00f6zdizimi hatas\u0131 i\u00e7ermedi\u011finden emin olmak \u00e7ok \u00f6nemlidir. Nginx, yap\u0131land\u0131rmay\u0131 test etmek i\u00e7in \u00f6zel bir komuta sahiptir.<\/p>\n<p>Yap\u0131land\u0131rmay\u0131 test edin:<\/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\nnginx: configuration file \/etc\/nginx\/nginx.conf test is successful<\/code><\/pre>\n<p>Herhangi bir hata mesaj\u0131 al\u0131rsan\u0131z, hatay\u0131 d\u00fczeltmek i\u00e7in yap\u0131land\u0131rma dosyas\u0131n\u0131 tekrar kontrol edin.<\/p>\n<p>Yap\u0131land\u0131rma testi ba\u015far\u0131l\u0131 olduktan sonra Nginx hizmetini ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start nginx<\/code><\/pre>\n<p>Nginx&#8217;in \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status nginx<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>Active: active (running)<\/code> ifadesini g\u00f6rmelisiniz.<\/p>\n<h4>7. Eri\u015fimi Do\u011frulama<\/h4>\n<p>Son ad\u0131m, web sitenizin yeni konumdan ba\u015far\u0131yla sunuldu\u011funu do\u011frulamakt\u0131r.<\/p>\n<p>*   <strong>Taray\u0131c\u0131dan Kontrol:<\/strong> Web taray\u0131c\u0131n\u0131z\u0131 a\u00e7\u0131n ve web sitenizin URL&#8217;sini ziyaret edin. Web sitenizin beklendi\u011fi gibi \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun.<br \/>\n*   <strong>Log Dosyalar\u0131n\u0131 Kontrol Etme:<\/strong> Nginx hata loglar\u0131n\u0131 kontrol edin. Herhangi bir &#8220;permission denied&#8221; (izin reddedildi) veya &#8220;file not found&#8221; (dosya bulunamad\u0131) hatas\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin.<\/p>\n<pre><code class=\"language-bash\">sudo tail -f \/var\/log\/nginx\/error.log\n    sudo tail -f \/var\/log\/nginx\/access.log<\/code><\/pre>\n<p>    Eri\u015fim loglar\u0131, sitenize yap\u0131lan yeni istekleri g\u00f6sterecektir.<br \/>\n*   <strong>Test Dosyas\u0131 Olu\u015fturma:<\/strong> Yeni web k\u00f6k\u00fcn\u00fczde basit bir HTML veya PHP dosyas\u0131 olu\u015fturarak do\u011fru konumdan sunuldu\u011funu teyit edebilirsiniz.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/srv\/www\/mywebsite\/test.html<\/code><\/pre>\n<p>    \u0130\u00e7ine a\u015fa\u011f\u0131daki i\u00e7eri\u011fi ekleyin:<\/p>\n<pre><code class=\"language-html\"><!DOCTYPE html>\n    <html>\n    <head>\n        <title>Nginx Web K\u00f6k\u00fc Testi<\/title>\n    <\/head>\n    <body>\n        \n        <p>Yeni konum: \/srv\/www\/mywebsite<\/p>\n    <\/body>\n    <\/html><\/code><\/pre>\n<p>    Kaydedin ve \u00e7\u0131k\u0131n. Ard\u0131ndan taray\u0131c\u0131n\u0131zdan <code>http:\/\/your_domain\/test.html<\/code> adresini ziyaret edin. Bu sayfan\u0131n g\u00f6r\u00fcnmesi, ta\u015f\u0131ma i\u015fleminin ba\u015far\u0131l\u0131 oldu\u011funu g\u00f6sterir. Test dosyas\u0131n\u0131 do\u011frulad\u0131ktan sonra silebilirsiniz.<\/p>\n<h3>Ek Hususlar ve \u0130pu\u00e7lar\u0131<\/h3>\n<p>Web k\u00f6k\u00fcn\u00fc ta\u015f\u0131ma i\u015flemi s\u0131ras\u0131nda veya sonras\u0131nda dikkate alman\u0131z gereken baz\u0131 ek noktalar vard\u0131r.<\/p>\n<h4>Sembolik Ba\u011flant\u0131lar (Symbolic Links) Kullan\u0131m\u0131<\/h4>\n<p>Web k\u00f6k\u00fcn\u00fc fiziksel olarak ta\u015f\u0131mak yerine sembolik bir ba\u011flant\u0131 (symlink) olu\u015fturmak da bir se\u00e7enektir. Bu, Nginx yap\u0131land\u0131rmas\u0131n\u0131 de\u011fi\u015ftirmek zorunda kalmadan web dosyalar\u0131n\u0131n fiziksel konumunu de\u011fi\u015ftirmenize olanak tan\u0131r.<\/p>\n<p>\u00d6rne\u011fin, dosyalar\u0131n\u0131z\u0131 <code>\/srv\/www\/mywebsite<\/code> konumuna ta\u015f\u0131d\u0131ktan sonra, orijinal <code>\/var\/www\/html<\/code> dizinini yeni konuma i\u015faret eden bir sembolik ba\u011flant\u0131 ile de\u011fi\u015ftirebilirsiniz:<\/p>\n<pre><code class=\"language-bash\"># Mevcut web k\u00f6k\u00fcn\u00fc yedekleyin veya silin\nsudo mv \/var\/www\/html \/var\/www\/html_old\n\n<h2>Yeni konuma sembolik ba\u011flant\u0131 olu\u015fturun<\/h2>\nsudo ln -s \/srv\/www\/mywebsite \/var\/www\/html<\/code><\/pre>\n<p>Bu durumda, Nginx yap\u0131land\u0131rma dosyas\u0131ndaki <code>root \/var\/www\/html;<\/code> sat\u0131r\u0131n\u0131 de\u011fi\u015ftirmenize gerek kalmaz, \u00e7\u00fcnk\u00fc <code>\/var\/www\/html<\/code> art\u0131k yeni konuma i\u015faret etmektedir.<\/p>\n<p><strong>Avantajlar\u0131:<\/strong><br \/>\n*   Nginx yap\u0131land\u0131rmas\u0131n\u0131 g\u00fcncellemeye gerek kalmaz.<br \/>\n*   Daha h\u0131zl\u0131 geri alma imkan\u0131 sunar (eski dizini geri ta\u015f\u0131yarak).<\/p>\n<p><strong>Dezavantajlar\u0131:<\/strong><br \/>\n*   Baz\u0131 Nginx g\u00fcvenlik ayarlar\u0131 (\u00f6rne\u011fin <code>disable_symlinks<\/code>) sembolik ba\u011flant\u0131lar\u0131 engelleyebilir.<br \/>\n*   Dosya sistemini denetlerken kar\u0131\u015f\u0131kl\u0131\u011fa yol a\u00e7abilir (ger\u00e7ek konum nerede?).<br \/>\n*   AppArmor\/SELinux yine de yeni fiziksel konuma eri\u015fim izni gerektirebilir.<\/p>\n<h4>Birden Fazla Siteyi Y\u00f6netme<\/h4>\n<p>E\u011fer sunucunuzda birden fazla web sitesi bar\u0131nd\u0131r\u0131yorsan\u0131z (virtual hosts), her bir site i\u00e7in ayr\u0131 bir yap\u0131land\u0131rma dosyas\u0131 (<code>\/etc\/nginx\/sites-available\/your_domain.conf<\/code>) ve muhtemelen ayr\u0131 bir web k\u00f6k\u00fc olacakt\u0131r. Her bir sitenin web k\u00f6k\u00fcn\u00fc ta\u015f\u0131d\u0131\u011f\u0131n\u0131zda, ilgili yap\u0131land\u0131rma dosyas\u0131ndaki <code>root<\/code> direktifini g\u00fcncellemeniz gerekecektir. Her site i\u00e7in ayn\u0131 ad\u0131mlar\u0131 tekrarlaman\u0131z yeterlidir.<\/p>\n<h4>Performans Etkileri<\/h4>\n<p>Web k\u00f6k\u00fcn\u00fc ta\u015f\u0131d\u0131\u011f\u0131n\u0131z yeni disk b\u00f6l\u00fcm\u00fcn\u00fcn performans\u0131, web sitenizin genel h\u0131z\u0131n\u0131 etkileyebilir.<\/p>\n<p>*   <strong>Daha H\u0131zl\u0131 Disk:<\/strong> E\u011fer web sitenizi daha h\u0131zl\u0131 bir diske (\u00f6rne\u011fin SATA SSD&#8217;den NVMe SSD&#8217;ye) ta\u015f\u0131d\u0131ysan\u0131z, sayfa y\u00fckleme s\u00fcrelerinde iyile\u015fme bekleyebilirsiniz.<br \/>\n*   <strong>Daha Yava\u015f Disk\/A\u011f Depolamas\u0131:<\/strong> E\u011fer web sitenizi daha yava\u015f bir diske veya a\u011fa ba\u011fl\u0131 depolama birimine (NAS\/SAN) ta\u015f\u0131d\u0131ysan\u0131z, I\/O operasyonlar\u0131ndaki gecikmeler nedeniyle performans d\u00fc\u015f\u00fc\u015fleri ya\u015fayabilirsiniz. A\u011f depolamas\u0131 kullan\u0131rken a\u011f gecikmesi de \u00f6nemli bir fakt\u00f6r haline gelir.<\/p>\n<h4>G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/h4>\n<p>*   <strong>Do\u011fru \u0130zinler:<\/strong> Her zaman <code>www-data<\/code> kullan\u0131c\u0131s\u0131 ve grubuna en az ayr\u0131cal\u0131k ilkesiyle izinler verin. Web sunucusunun yazma iznine ihtiyac\u0131 olmayan dizinlere <code>rw<\/code> (okuma\/yazma) izni vermeyin.<br \/>\n*   <strong>G\u00fcncel Tutma:<\/strong> Nginx&#8217;i ve Ubuntu sisteminizi d\u00fczenli olarak g\u00fcncel tutun. Bu, bilinen g\u00fcvenlik a\u00e7\u0131klar\u0131na kar\u015f\u0131 korunman\u0131za yard\u0131mc\u0131 olur.<br \/>\n*   <strong>Hassas Dosyalar:<\/strong> Veritaban\u0131 yap\u0131land\u0131rma dosyalar\u0131, API anahtarlar\u0131 gibi hassas bilgileri asla web k\u00f6k\u00fc i\u00e7inde tutmay\u0131n. Bunlar genellikle web k\u00f6k\u00fcn\u00fcn d\u0131\u015f\u0131nda, g\u00fcvenli bir dizinde saklanmal\u0131d\u0131r.<\/p>\n<h4>Geri Alma Plan\u0131<\/h4>\n<p>Herhangi bir sorunla kar\u015f\u0131la\u015fman\u0131z durumunda, yedeklerinizi kullanarak orijinal duruma geri d\u00f6nebilmeniz \u00e7ok \u00f6nemlidir.<\/p>\n<p>1.  <strong>Nginx&#8217;i Durdurun:<\/strong> <code>sudo systemctl stop nginx<\/code><br \/>\n2.  <strong>Eski Web K\u00f6k\u00fcn\u00fc Geri Y\u00fckleyin:<\/strong> E\u011fer eski <code>\/var\/www\/html<\/code> dizinini yedeklediyseniz (<code>\/var\/www\/html_old<\/code> gibi), onu eski yerine ta\u015f\u0131y\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo rm -rf \/srv\/www\/mywebsite # Yeni web k\u00f6k\u00fcn\u00fc silin\n    sudo mv \/var\/www\/html_old \/var\/www\/html # Eski web k\u00f6k\u00fcn\u00fc geri ta\u015f\u0131y\u0131n<\/code><\/pre>\n<p>    E\u011fer <code>tar<\/code> ile yedeklediyseniz, yedekten geri y\u00fckleyin.<br \/>\n3.  <strong>Nginx Yap\u0131land\u0131rmas\u0131n\u0131 Geri Y\u00fckleyin:<\/strong> Nginx yap\u0131land\u0131rma dosyas\u0131ndaki <code>root<\/code> direktifini orijinal haline (<code>\/var\/www\/html<\/code>) geri \u00e7evirin veya yedekten geri y\u00fckleyin.<\/p>\n<pre><code class=\"language-bash\">sudo cp \/root\/nginx_conf_backup_$(date +%Y%m%d).tar.gz \/etc\/nginx\/\n    # Tar dosyas\u0131n\u0131 a\u00e7\u0131p ilgili dosyay\u0131 yerine koyman\u0131z gerekebilir.<\/code><\/pre>\n<p>4.  <strong>Nginx&#8217;i Ba\u015flat\u0131n:<\/strong> <code>sudo systemctl start nginx<\/code><\/p>\n<h3>Sorun Giderme<\/h3>\n<p>Ta\u015f\u0131ma i\u015flemi s\u0131ras\u0131nda veya sonras\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri a\u015fa\u011f\u0131dad\u0131r.<\/p>\n<h4>&#8220;403 Forbidden&#8221; Hatas\u0131<\/h4>\n<p>Bu hata genellikle Nginx&#8217;in web k\u00f6k\u00fc dizinine veya i\u00e7erdi\u011fi dosyalara eri\u015fim izni olmad\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<p>*   <strong>\u0130zinleri Kontrol Edin:<\/strong> Yeni web k\u00f6k\u00fc dizininin ve dosyalar\u0131n\u0131n <code>www-data:www-data<\/code> sahipli\u011fine ve 755\/644 izinlerine sahip oldu\u011fundan emin olun.<\/p>\n<pre><code class=\"language-bash\">sudo chown -R www-data:www-data \/srv\/www\/mywebsite\n    sudo chmod -R 755 \/srv\/www\/mywebsite<\/code><\/pre>\n<p>*   <strong>AppArmor\/SELinux:<\/strong> AppArmor veya SELinux&#8217;un Nginx&#8217;in yeni konuma eri\u015fimini engellemedi\u011finden emin olun. Yukar\u0131daki &#8220;SELinux veya AppArmor Ayarlar\u0131n\u0131 Kontrol Etme&#8221; b\u00f6l\u00fcm\u00fcn\u00fc g\u00f6zden ge\u00e7irin.<br \/>\n*   <strong>Nginx <code>index<\/code> Direktifi:<\/strong> Nginx yap\u0131land\u0131rman\u0131zda <code>index<\/code> direktifinin do\u011fru dosyalar\u0131 (\u00f6rne\u011fin <code>index.html<\/code>, <code>index.php<\/code>) i\u00e7erdi\u011finden ve bu dosyalar\u0131n yeni web k\u00f6k\u00fcnde mevcut oldu\u011fundan emin olun.<\/p>\n<h4>&#8220;404 Not Found&#8221; Hatas\u0131<\/h4>\n<p>Bu hata genellikle Nginx&#8217;in istenen dosyay\u0131 bulamad\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<p>*   <strong>Nginx <code>root<\/code> Direktifi:<\/strong> Nginx yap\u0131land\u0131rma dosyas\u0131ndaki <code>root<\/code> direktifinin yeni web k\u00f6k\u00fc yolunu do\u011fru bir \u015fekilde g\u00f6sterdi\u011finden emin olun. Herhangi bir yaz\u0131m hatas\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin.<br \/>\n*   <strong>Dosyalar\u0131n Kopyaland\u0131\u011f\u0131ndan Emin Olun:<\/strong> Web sitesi dosyalar\u0131n\u0131n yeni konuma tam olarak kopyaland\u0131\u011f\u0131ndan emin olun. <code>ls -la \/srv\/www\/mywebsite<\/code> komutuyla kontrol edin.<br \/>\n*   <strong>URL Yaz\u0131m Hatalar\u0131:<\/strong> Taray\u0131c\u0131n\u0131zda URL&#8217;yi do\u011fru yazd\u0131\u011f\u0131n\u0131zdan emin olun.<br \/>\n*   <strong><code>try_files<\/code> Direktifi:<\/strong> E\u011fer Nginx yap\u0131land\u0131rman\u0131zda <code>try_files<\/code> direktifi kullan\u0131l\u0131yorsa, bu direktifin do\u011fru yollar\u0131 ve fallback mekanizmas\u0131n\u0131 i\u00e7erdi\u011finden emin olun.<\/p>\n<h4>Nginx Ba\u015flat\u0131lam\u0131yor<\/h4>\n<p>Nginx hizmeti ba\u015flam\u0131yorsa, genellikle yap\u0131land\u0131rma dosyas\u0131nda bir s\u00f6zdizimi hatas\u0131 vard\u0131r.<\/p>\n<p>*   <strong>Yap\u0131land\u0131rmay\u0131 Test Edin:<\/strong> <code>sudo nginx -t<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n ve \u00e7\u0131kt\u0131daki hata mesajlar\u0131n\u0131 dikkatlice okuyun. Hatan\u0131n hangi dosyada ve sat\u0131rda oldu\u011funu belirleyerek d\u00fczeltin.<br \/>\n*   <strong>Log Dosyalar\u0131n\u0131 Kontrol Edin:<\/strong> Nginx hata loglar\u0131na (<code>\/var\/log\/nginx\/error.log<\/code>) ve sistem loglar\u0131na (<code>sudo journalctl -xe<\/code>) bak\u0131n. Nginx&#8217;in neden ba\u015flat\u0131lamad\u0131\u011f\u0131na dair ipu\u00e7lar\u0131 bulabilirsiniz.<br \/>\n*   <strong>Port \u00c7ak\u0131\u015fmas\u0131:<\/strong> Nginx&#8217;in dinlemeye \u00e7al\u0131\u015ft\u0131\u011f\u0131 portun (genellikle 80 veya 443) ba\u015fka bir servis taraf\u0131ndan kullan\u0131l\u0131p kullan\u0131lmad\u0131\u011f\u0131n\u0131 kontrol edin. <code>sudo netstat -tulnp | grep :80<\/code> gibi komutlarla kontrol edebilirsiniz.<\/p>\n<h4>Log Dosyalar\u0131n\u0131 Kontrol Etme<\/h4>\n<p>Herhangi bir sorunla kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131zda, Nginx log dosyalar\u0131 en iyi arkada\u015f\u0131n\u0131zd\u0131r:<\/p>\n<p>*   <strong>Eri\u015fim Loglar\u0131:<\/strong> <code>\/var\/log\/nginx\/access.log<\/code> &#8211; Hangi isteklerin yap\u0131ld\u0131\u011f\u0131n\u0131 ve Nginx&#8217;in bunlara nas\u0131l yan\u0131t verdi\u011fini (HTTP durum kodlar\u0131) g\u00f6sterir.<br \/>\n*   <strong>Hata Loglar\u0131:<\/strong> <code>\/var\/log\/nginx\/error.log<\/code> &#8211; Nginx&#8217;in kar\u015f\u0131la\u015ft\u0131\u011f\u0131 t\u00fcm hatalar\u0131 kaydeder. \u0130zin sorunlar\u0131, dosya bulunamad\u0131 hatalar\u0131 ve yap\u0131land\u0131rma hatalar\u0131 burada g\u00f6r\u00fcn\u00fcr.<\/p>\n<p>Bu log dosyalar\u0131n\u0131 <code>tail -f<\/code> komutuyla canl\u0131 olarak izleyerek sorunlar\u0131 an\u0131nda tespit edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo tail -f \/var\/log\/nginx\/error.log<\/code><\/pre>\n<h3>Sonu\u00e7<\/h3>\n<p>Nginx web k\u00f6k\u00fcn\u00fc yeni bir konuma ta\u015f\u0131mak, disk alan\u0131 y\u00f6netimi, g\u00fcvenlik veya performans optimizasyonu gibi bir\u00e7ok nedenden dolay\u0131 gerekli bir i\u015flem olabilir. Bu rehberde a\u00e7\u0131klanan ad\u0131mlar\u0131 dikkatlice takip ederek, web sitenizin sorunsuz bir \u015fekilde yeni konumundan hizmet vermesini sa\u011flayabilirsiniz.<\/p>\n<p>Unutulmamas\u0131 gereken en \u00f6nemli noktalar:<\/p>\n<p>*   <strong>Yedekleme:<\/strong> Herhangi bir kritik sistem de\u011fi\u015fikli\u011finden \u00f6nce mutlaka kapsaml\u0131 yedeklemeler yap\u0131n.<br \/>\n*   <strong>Planlama:<\/strong> Yeni konum se\u00e7imi, izinler ve AppArmor\/SELinux gibi g\u00fcvenlik mekanizmalar\u0131n\u0131 dikkate alarak dikkatli bir planlama yap\u0131n.<br \/>\n*   <strong>Test Etme:<\/strong> Nginx yap\u0131land\u0131rmas\u0131n\u0131 test edin (<code>nginx -t<\/code>) ve ta\u015f\u0131ma i\u015fleminden sonra web sitenizin t\u00fcm i\u015flevlerini do\u011frulay\u0131n.<br \/>\n*   <strong>Log Kontrol\u00fc:<\/strong> Sorun giderme s\u0131ras\u0131nda Nginx log dosyalar\u0131n\u0131 aktif olarak kullan\u0131n.<\/p>\n<p>Bu ad\u0131mlarla, Ubuntu 22.04 sunucunuzda Nginx web k\u00f6k\u00fcn\u00fc ba\u015far\u0131yla ta\u015f\u0131yabilir ve sunucunuzun genel performans\u0131n\u0131 ve y\u00f6netilebilirli\u011fini art\u0131rabilirsiniz.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Nginx Web K\u00f6k\u00fcn\u00fc Ubuntu 22.04&#8217;te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi\nBu kapsaml\u0131 rehber, Nginx web sunucunuzun web k\u00f6k dizinini Ubuntu 22.04 i\u015flet","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-37827","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Nginx Web K\u00f6k\u00fcn\u00fc Ubuntu 22.04&#039;te Yeni Bir Konuma Ta\u015f\u0131ma 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\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Nginx Web K\u00f6k\u00fcn\u00fc Ubuntu 22.04&#039;te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi\" \/>\n<meta property=\"og:description\" content=\"Nginx Web K\u00f6k\u00fcn\u00fc Ubuntu 22.04&#039;te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi Bu kapsaml\u0131 rehber, Nginx web sunucunuzun web k\u00f6k dizinini Ubuntu 22.04 i\u015flet\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-16T09:40:50+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=\"19 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Nginx Web K\u00f6k\u00fcn\u00fc Ubuntu 22.04&#8217;te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi\",\"datePublished\":\"2026-01-16T09:40:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/\"},\"wordCount\":3155,\"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\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/\",\"name\":\"Nginx Web K\u00f6k\u00fcn\u00fc Ubuntu 22.04'te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-16T09:40:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Nginx Web K\u00f6k\u00fcn\u00fc Ubuntu 22.04&#8217;te Yeni Bir Konuma Ta\u015f\u0131ma 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":"Nginx Web K\u00f6k\u00fcn\u00fc Ubuntu 22.04'te Yeni Bir Konuma Ta\u015f\u0131ma 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\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Nginx Web K\u00f6k\u00fcn\u00fc Ubuntu 22.04'te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi","og_description":"Nginx Web K\u00f6k\u00fcn\u00fc Ubuntu 22.04'te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi Bu kapsaml\u0131 rehber, Nginx web sunucunuzun web k\u00f6k dizinini Ubuntu 22.04 i\u015flet","og_url":"https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-16T09:40:50+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"19 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Nginx Web K\u00f6k\u00fcn\u00fc Ubuntu 22.04&#8217;te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi","datePublished":"2026-01-16T09:40:50+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/"},"wordCount":3155,"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\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/","name":"Nginx Web K\u00f6k\u00fcn\u00fc Ubuntu 22.04'te Yeni Bir Konuma Ta\u015f\u0131ma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-16T09:40:50+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/nginx-web-kokunu-ubuntu-22-04te-yeni-bir-konuma-tasima-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Nginx Web K\u00f6k\u00fcn\u00fc Ubuntu 22.04&#8217;te Yeni Bir Konuma Ta\u015f\u0131ma 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\/37827","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=37827"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37827\/revisions"}],"predecessor-version":[{"id":37828,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37827\/revisions\/37828"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37827"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37827"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37827"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}