{"id":37361,"date":"2026-01-01T11:40:46","date_gmt":"2026-01-01T08:40:46","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37361"},"modified":"2026-01-01T11:40:46","modified_gmt":"2026-01-01T08:40:46","slug":"nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/","title":{"rendered":"Nginx ile Ubuntu 22.04 \u00dczerinde Parola Kimlik Do\u011frulama Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber"},"content":{"rendered":"<p><body><\/p>\n<h2>Nginx ile Ubuntu 22.04 \u00dczerinde Parola Kimlik Do\u011frulama Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber<\/h2>\n<p>Nginx, modern web altyap\u0131lar\u0131n\u0131n temel ta\u015flar\u0131ndan biri olan y\u00fcksek performansl\u0131, a\u00e7\u0131k kaynakl\u0131 bir web sunucusu ve ters proxy \u00e7\u00f6z\u00fcm\u00fcd\u00fcr. Geni\u015f \u00f6zellikleri aras\u0131nda, belirli web kaynaklar\u0131na veya t\u00fcm bir siteye eri\u015fimi k\u0131s\u0131tlamak i\u00e7in kullan\u0131labilecek temel parola kimlik do\u011frulama (Basic Authentication) yetene\u011fi de bulunur. Bu \u00f6zellik, \u00f6zellikle geli\u015ftirme ortamlar\u0131, dahili uygulamalar, y\u00f6netim panelleri veya hassas belgelere sahip staging sunucular\u0131 gibi herkese a\u00e7\u0131k olmamas\u0131 gereken alanlar\u0131 korumak i\u00e7in son derece kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<p>Bu kapsaml\u0131 rehberde, Ubuntu 22.04 i\u015fletim sistemi \u00fczerinde \u00e7al\u0131\u015fan bir Nginx sunucusunda HTTP Basic Authentication&#8217;\u0131 ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 \u00f6\u011freneceksiniz. Amac\u0131m\u0131z, Nginx&#8217;in <code>auth_basic<\/code> ve <code>auth_basic_user_file<\/code> y\u00f6nergelerini kullanarak belirli bir alana eri\u015fimi yaln\u0131zca tan\u0131mlanm\u0131\u015f kullan\u0131c\u0131 adlar\u0131 ve parolalarla sa\u011flamakt\u0131r. Ayr\u0131ca, kurulumun yan\u0131 s\u0131ra g\u00fcvenlik en iyi uygulamalar\u0131 ve s\u0131k kar\u015f\u0131la\u015f\u0131lan sorunlar\u0131n giderilmesi konular\u0131na da de\u011finece\u011fiz.<\/p>\n<h3>Giri\u015f: Nginx ve Temel Kimlik Do\u011frulama Neden \u00d6nemli?<\/h3>\n<p>Nginx, h\u0131zl\u0131, esnek ve kaynaklar\u0131 verimli kullanan yap\u0131s\u0131yla milyonlarca web sitesine g\u00fc\u00e7 vermektedir. Statik i\u00e7erik sunmaktan dinamik uygulamalar\u0131 ters proxy olarak y\u00f6nlendirmeye kadar bir\u00e7ok farkl\u0131 senaryoda kullan\u0131labilir. Ancak bazen, bir web sitesinin veya uygulaman\u0131n belirli b\u00f6l\u00fcmlerini genel eri\u015fime kapatmak gerekebilir. \u0130\u015fte bu noktada HTTP Basic Authentication devreye girer.<\/p>\n<p>Temel kimlik do\u011frulama, bir kullan\u0131c\u0131n\u0131n web taray\u0131c\u0131s\u0131 arac\u0131l\u0131\u011f\u0131yla sunucuya bir kullan\u0131c\u0131 ad\u0131 ve parola g\u00f6ndermesini gerektiren basit bir mekanizmad\u0131r. Sunucu bu kimlik bilgilerini do\u011frular ve e\u011fer ge\u00e7erliyse, istenen kayna\u011fa eri\u015fime izin verir. Ge\u00e7ersizse, kullan\u0131c\u0131ya &#8220;401 Unauthorized&#8221; (Yetkisiz) yan\u0131t\u0131 d\u00f6nd\u00fcr\u00fcl\u00fcr ve genellikle taray\u0131c\u0131 bir giri\u015f penceresini tekrar g\u00f6r\u00fcnt\u00fcler. Bu y\u00f6ntem, \u00f6zellikle h\u0131zl\u0131 ve kolay bir eri\u015fim kontrol\u00fc gerekti\u011finde idealdir. Ancak, kimlik bilgilerinin Base64 ile kodlanm\u0131\u015f olmas\u0131na ra\u011fmen \u015fifrelenmedi\u011fini ve bu nedenle HTTPS (SSL\/TLS) ile kullan\u0131lmad\u0131\u011f\u0131 takdirde g\u00fcvenlik riskleri ta\u015f\u0131d\u0131\u011f\u0131n\u0131 unutmamak \u00f6nemlidir. Bu rehberde, bu g\u00fcvenlik hususlar\u0131na da \u00f6zellikle vurgu yapaca\u011f\u0131z.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>Bu rehbere ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki maddelerin haz\u0131r oldu\u011fundan emin olmal\u0131s\u0131n\u0131z:<\/p>\n<p>*   <strong>Ubuntu 22.04 Sunucusu:<\/strong> SSH eri\u015fimi olan ve <code>sudo<\/code> ayr\u0131cal\u0131klar\u0131na sahip bir Ubuntu 22.04 sunucusu.<br \/>\n*   <strong>Nginx Kurulumu:<\/strong> Sunucunuzda Nginx&#8217;in y\u00fckl\u00fc ve \u00e7al\u0131\u015f\u0131r durumda olmas\u0131. E\u011fer kurulu de\u011filse, ilk ad\u0131mda kurulumunu ele alaca\u011f\u0131z.<br \/>\n*   <strong>Temel Linux Bilgisi:<\/strong> Komut sat\u0131r\u0131 kullan\u0131m\u0131 ve dosya d\u00fczenleme konular\u0131nda temel d\u00fczeyde bilgi sahibi olmak.<br \/>\n*   <strong><code>apache2-utils<\/code> Paketi:<\/strong> Parola dosyalar\u0131n\u0131 olu\u015fturmak i\u00e7in <code>htpasswd<\/code> arac\u0131na ihtiyac\u0131m\u0131z olacak. Bu ara\u00e7 <code>apache2-utils<\/code> paketiyle birlikte gelir.<\/p>\n<h3>HTTP Temel Kimlik Do\u011frulaman\u0131n \u00c7al\u0131\u015fma Prensibi<\/h3>\n<p>HTTP Temel Kimlik Do\u011frulama, RFC 7617&#8217;de tan\u0131mlanm\u0131\u015f bir protokold\u00fcr. Bir istemci (web taray\u0131c\u0131s\u0131) korumal\u0131 bir kayna\u011fa eri\u015fim talebinde bulundu\u011funda ve kimlik bilgileri sa\u011flanmad\u0131\u011f\u0131nda, sunucu &#8220;401 Unauthorized&#8221; durumu ve bir <code>WWW-Authenticate<\/code> ba\u015fl\u0131\u011f\u0131 ile yan\u0131t verir. Bu ba\u015fl\u0131k, istemciye kimlik do\u011frulama t\u00fcr\u00fcn\u00fc (bu durumda &#8220;Basic&#8221;) ve bir &#8220;realm&#8221; (kimlik do\u011frulama alan\u0131n\u0131n ad\u0131) belirtir.<\/p>\n<p>Taray\u0131c\u0131 bu yan\u0131t\u0131 ald\u0131\u011f\u0131nda, kullan\u0131c\u0131ya bir kullan\u0131c\u0131 ad\u0131 ve parola girmesi i\u00e7in bir ileti\u015fim kutusu sunar. Kullan\u0131c\u0131 kimlik bilgilerini girdikten sonra, taray\u0131c\u0131 bunlar\u0131 <code>kullaniciadi:parola<\/code> format\u0131nda birle\u015ftirir, Base64 ile kodlar ve bu kodlanm\u0131\u015f dizeyi <code>Authorization<\/code> ba\u015fl\u0131\u011f\u0131 alt\u0131nda sunucuya geri g\u00f6nderir (\u00f6rne\u011fin, <code>Authorization: Basic a3VsbGFuaWNpYWRpOnBhcm9sYQ==<\/code>). Sunucu, bu ba\u015fl\u0131\u011f\u0131 ayr\u0131\u015ft\u0131r\u0131r, kimlik bilgilerini \u00e7\u00f6zer ve kendi depolad\u0131\u011f\u0131 kullan\u0131c\u0131 listesiyle kar\u015f\u0131la\u015ft\u0131r\u0131r. E\u015fle\u015fme sa\u011flan\u0131rsa eri\u015fim izni verilir, aksi takdirde i\u015flem tekrarlan\u0131r veya eri\u015fim reddedilir.<\/p>\n<p>Bu s\u00fcrecin anla\u015f\u0131lmas\u0131, neden HTTPS kullan\u0131m\u0131n\u0131n kritik oldu\u011funu da a\u00e7\u0131klar. Base64 kodlama bir \u015fifreleme y\u00f6ntemi de\u011fildir; kodlanm\u0131\u015f dize kolayca \u00e7\u00f6z\u00fclebilir. Bu nedenle, kimlik bilgileri a\u011f \u00fczerinden \u015fifresiz bir \u015fekilde g\u00f6nderilirse, k\u00f6t\u00fc niyetli ki\u015filer taraf\u0131ndan ele ge\u00e7irilebilir. HTTPS, bu ileti\u015fimi u\u00e7tan uca \u015fifreleyerek kimlik bilgilerinin g\u00fcvenli\u011fini sa\u011flar.<\/p>\n<h3>Ad\u0131m 1: Nginx Kurulumu ve Temel Yap\u0131land\u0131rma (E\u011fer Hen\u00fcz Yap\u0131lmad\u0131ysa)<\/h3>\n<p>E\u011fer Nginx sunucunuzda kurulu de\u011filse, bu ad\u0131m\u0131 uygulayarak kurulumu ger\u00e7ekle\u015ftirebilirsiniz.<\/p>\n<p>\u0130lk olarak, sistem paket listesini g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade -y<\/code><\/pre>\n<p>Ard\u0131ndan, Nginx paketini y\u00fckleyin:<\/p>\n<pre><code class=\"language-bash\">sudo apt install nginx -y<\/code><\/pre>\n<p>Kurulum tamamland\u0131ktan sonra, Nginx servisinin otomatik olarak ba\u015flamas\u0131 gerekir. \u00c7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol edelim:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status nginx<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>active (running)<\/code> ibaresini g\u00f6rmelisiniz. E\u011fer \u00e7al\u0131\u015fm\u0131yorsa, ba\u015flatmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/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 etkinle\u015ftirin:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl enable nginx<\/code><\/pre>\n<p><strong>G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131 (UFW):<\/strong><\/p>\n<p>Ubuntu&#8217;da genellikle UFW (Uncomplicated Firewall) etkinle\u015ftirilmi\u015ftir. Nginx&#8217;in web trafi\u011fini alabilmesi i\u00e7in g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131 ayarlaman\u0131z gerekebilir.<\/p>\n<p>Nginx, UFW ile entegre olan \u00f6nceden tan\u0131mlanm\u0131\u015f profil sa\u011flar:<\/p>\n<pre><code class=\"language-bash\">sudo ufw app list<\/code><\/pre>\n<p>Bu komutun \u00e7\u0131kt\u0131s\u0131nda <code>Nginx HTTP<\/code> ve <code>Nginx Full<\/code> gibi se\u00e7enekleri g\u00f6rmelisiniz. HTTP trafi\u011fine (port 80) 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>E\u011fer daha sonra HTTPS (port 443) kullanacaksan\u0131z, <code>Nginx Full<\/code> profilini etkinle\u015ftirmeniz gerekecektir.<\/p>\n<p>G\u00fcvenlik duvar\u0131n\u0131n durumunu kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo ufw status<\/code><\/pre>\n<p>Art\u0131k bir web taray\u0131c\u0131s\u0131 a\u00e7\u0131p sunucunuzun IP adresini veya alan ad\u0131n\u0131 (\u00f6rne\u011fin, <code>http:\/\/your_server_ip<\/code>) girerek Nginx&#8217;in varsay\u0131lan &#8220;Welcome to Nginx!&#8221; sayfas\u0131n\u0131 g\u00f6rmelisiniz. Bu, Nginx&#8217;in ba\u015far\u0131l\u0131 bir \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131 anlam\u0131na gelir.<\/p>\n<h3>Ad\u0131m 2: <code>htpasswd<\/code> Arac\u0131 ile Kullan\u0131c\u0131 ve Parola Olu\u015fturma<\/h3>\n<p>Nginx, kullan\u0131c\u0131 adlar\u0131 ve parolalar\u0131 d\u00fcz metin dosyalar\u0131nda saklamaz. Bunun yerine, <code>htpasswd<\/code> ad\u0131 verilen \u00f6zel bir ara\u00e7 taraf\u0131ndan olu\u015fturulan \u015fifrelenmi\u015f parolalar\u0131 i\u00e7eren bir dosya kullan\u0131r. Bu ara\u00e7, <code>apache2-utils<\/code> paketinin bir par\u00e7as\u0131d\u0131r.<\/p>\n<p>\u0130lk olarak, <code>apache2-utils<\/code> paketini y\u00fckleyin:<\/p>\n<pre><code class=\"language-bash\">sudo apt install apache2-utils -y<\/code><\/pre>\n<p>\u015eimdi, kimlik do\u011frulama i\u00e7in kullanaca\u011f\u0131m\u0131z kullan\u0131c\u0131 adlar\u0131 ve parolalar\u0131 i\u00e7eren dosyay\u0131 olu\u015ftural\u0131m. Bu dosyan\u0131n g\u00fcvenli bir yerde saklanmas\u0131 \u00f6nemlidir. Nginx&#8217;in yap\u0131land\u0131rma dosyalar\u0131n\u0131n bulundu\u011fu <code>\/etc\/nginx\/<\/code> dizini iyi bir se\u00e7imdir. Dosya ad\u0131n\u0131 <code>.htpasswd<\/code> olarak belirleyelim.<\/p>\n<p><strong>\u0130lk Kullan\u0131c\u0131y\u0131 Olu\u015fturma:<\/strong><\/p>\n<p><code>htpasswd -c<\/code> komutunu kullanarak ilk kullan\u0131c\u0131y\u0131 ve parolay\u0131 olu\u015fturun. <code>-c<\/code> bayra\u011f\u0131, belirtilen dosyay\u0131 olu\u015fturur veya \u00fczerine yazar.<\/p>\n<pre><code class=\"language-bash\">sudo htpasswd -c \/etc\/nginx\/.htpasswd kullaniciadi<\/code><\/pre>\n<p><code>kullaniciadi<\/code> yerine kullanmak istedi\u011finiz kullan\u0131c\u0131 ad\u0131n\u0131 yaz\u0131n. Komutu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, sizden iki kez parola girmeniz istenecektir. G\u00fc\u00e7l\u00fc bir parola se\u00e7ti\u011finizden emin olun.<\/p>\n<p><strong>Ek Kullan\u0131c\u0131lar Ekleme:<\/strong><\/p>\n<p>Daha sonra ba\u015fka kullan\u0131c\u0131lar eklemek isterseniz, <code>-c<\/code> bayra\u011f\u0131n\u0131 kullanmay\u0131n. <code>-c<\/code> bayra\u011f\u0131 olmadan, <code>htpasswd<\/code> mevcut dosyaya yeni bir kullan\u0131c\u0131 ekler. E\u011fer <code>-c<\/code> kullan\u0131rsan\u0131z, mevcut dosyan\u0131n i\u00e7eri\u011fi silinir ve yeni bir dosya olu\u015fturulur.<\/p>\n<pre><code class=\"language-bash\">sudo htpasswd \/etc\/nginx\/.htpasswd yeni_kullaniciadi<\/code><\/pre>\n<p>Her bir kullan\u0131c\u0131 i\u00e7in bu komutu tekrarlayabilirsiniz.<\/p>\n<p><strong><code>.htpasswd<\/code> Dosyas\u0131n\u0131n \u0130\u00e7eri\u011fini Kontrol Etme:<\/strong><\/p>\n<p>Dosyan\u0131n i\u00e7eri\u011fini g\u00f6rmek i\u00e7in <code>cat<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo cat \/etc\/nginx\/.htpasswd<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131, kullan\u0131c\u0131 adlar\u0131n\u0131 ve \u015fifrelenmi\u015f parolalar\u0131n\u0131 g\u00f6sterecektir (\u00f6rne\u011fin, <code>kullaniciadi:$apr1$.......<\/code>).<\/p>\n<p><strong><code>.htpasswd<\/code> Dosya \u0130zinlerini Ayarlama:<\/strong><\/p>\n<p>Bu dosyan\u0131n hassas bilgiler i\u00e7erdi\u011finden, do\u011fru dosya izinlerine sahip olmas\u0131 kritik \u00f6neme sahiptir. Yaln\u0131zca <code>root<\/code> kullan\u0131c\u0131s\u0131 ve Nginx servisinin \u00e7al\u0131\u015ft\u0131\u011f\u0131 kullan\u0131c\u0131 taraf\u0131ndan okunabilir olmal\u0131d\u0131r.<\/p>\n<p>Nginx genellikle <code>www-data<\/code> veya <code>nginx<\/code> kullan\u0131c\u0131s\u0131 alt\u0131nda \u00e7al\u0131\u015f\u0131r. Ubuntu 22.04&#8217;te bu genellikle <code>www-data<\/code>&#8216;d\u0131r. Dosyan\u0131n sahibini <code>root<\/code> ve grubunu <code>www-data<\/code> (veya <code>nginx<\/code>) olarak ayarlayal\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo chown root:www-data \/etc\/nginx\/.htpasswd<\/code><\/pre>\n<p>Ard\u0131ndan, yaln\u0131zca sahibin ve grubun okuma iznine sahip olmas\u0131n\u0131 sa\u011flay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo chmod 640 \/etc\/nginx\/.htpasswd<\/code><\/pre>\n<p>Bu komutlar, dosyan\u0131n <code>root<\/code> taraf\u0131ndan okunabilir, <code>www-data<\/code> grubu taraf\u0131ndan okunabilir ve di\u011fer kullan\u0131c\u0131lar taraf\u0131ndan eri\u015filemez olmas\u0131n\u0131 sa\u011flar. Bu, g\u00fcvenlik i\u00e7in \u00f6nemli bir ad\u0131md\u0131r.<\/p>\n<h3>Ad\u0131m 3: Nginx Yap\u0131land\u0131rmas\u0131n\u0131 G\u00fcncelleme<\/h3>\n<p>\u015eimdi Nginx&#8217;i, olu\u015fturdu\u011fumuz parola dosyas\u0131n\u0131 kullanarak belirli bir alana eri\u015fimi k\u0131s\u0131tlamak i\u00e7in yap\u0131land\u0131raca\u011f\u0131z. Nginx yap\u0131land\u0131rma dosyalar\u0131 genellikle <code>\/etc\/nginx\/sites-available\/<\/code> dizininde bulunur. Varsay\u0131lan yap\u0131land\u0131rma dosyas\u0131 genellikle <code>default<\/code> ad\u0131ndad\u0131r.<\/p>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 d\u00fczenlemek i\u00e7in favori metin d\u00fczenleyicinizi kullan\u0131n (\u00f6rne\u011fin, <code>nano<\/code> veya <code>vim<\/code>):<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/default<\/code><\/pre>\n<p>Dosya i\u00e7eri\u011fi, Nginx&#8217;in varsay\u0131lan <code>server<\/code> blo\u011funu i\u00e7erecektir. Kimlik do\u011frulama y\u00f6nergelerini bu blo\u011fun i\u00e7ine veya belirli <code>location<\/code> bloklar\u0131n\u0131n i\u00e7ine ekleyebilirsiniz.<\/p>\n<p><strong>Y\u00f6ntem 1: T\u00fcm Siteye Kimlik Do\u011frulama Uygulama<\/strong><\/p>\n<p>E\u011fer t\u00fcm web sitesini veya sanal ana bilgisayar\u0131 korumak istiyorsan\u0131z, <code>auth_basic<\/code> ve <code>auth_basic_user_file<\/code> y\u00f6nergelerini do\u011frudan <code>server<\/code> blo\u011funun i\u00e7ine ekleyin:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80 default_server;\n    listen [::]:80 default_server;\n    root \/var\/www\/html;\n    index index.html index.htm index.nginx-debian.html;\n    server_name _;\n\n    # Kimlik do\u011frulama y\u00f6nergeleri\n    auth_basic \"K\u0131s\u0131tl\u0131 Alan - L\u00fctfen Giri\u015f Yap\u0131n\"; # Taray\u0131c\u0131da g\u00f6sterilecek mesaj\n    auth_basic_user_file \/etc\/nginx\/.htpasswd; # Parola dosyas\u0131n\u0131n yolu\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n\n    # ... di\u011fer yap\u0131land\u0131rmalar ...\n}<\/code><\/pre>\n<p>*   <code>auth_basic \"K\u0131s\u0131tl\u0131 Alan - L\u00fctfen Giri\u015f Yap\u0131n\";<\/code>: Bu y\u00f6nerge, kimlik do\u011frulama istemi s\u0131ras\u0131nda kullan\u0131c\u0131n\u0131n taray\u0131c\u0131s\u0131nda g\u00f6r\u00fcnt\u00fclenecek mesaj\u0131 belirler. Kullan\u0131c\u0131n\u0131n neden giri\u015f yapmas\u0131 gerekti\u011fini anlamas\u0131na yard\u0131mc\u0131 olur.<br \/>\n*   <code>auth_basic_user_file \/etc\/nginx\/.htpasswd;<\/code>: Bu y\u00f6nerge, Nginx&#8217;in kullan\u0131c\u0131 adlar\u0131n\u0131 ve \u015fifrelenmi\u015f parolalar\u0131 arayaca\u011f\u0131 <code>.htpasswd<\/code> dosyas\u0131n\u0131n tam yolunu belirtir.<\/p>\n<p><strong>Y\u00f6ntem 2: Belirli Bir Konuma (Dizine) Kimlik Do\u011frulama Uygulama<\/strong><\/p>\n<p>\u00c7o\u011fu zaman, sadece web sitesinin belirli bir b\u00f6l\u00fcm\u00fcn\u00fc (\u00f6rne\u011fin, <code>\/admin<\/code> veya <code>\/private<\/code> dizini) korumak istersiniz. Bu durumda, kimlik do\u011frulama y\u00f6nergelerini ilgili <code>location<\/code> blo\u011funun i\u00e7ine yerle\u015ftirin:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80 default_server;\n    listen [::]:80 default_server;\n    root \/var\/www\/html;\n    index index.html index.htm index.nginx-debian.html;\n    server_name _;\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n\n    location \/admin {\n        # Kimlik do\u011frulama y\u00f6nergeleri sadece \/admin konumu i\u00e7in\n        auth_basic \"Y\u00f6netici Paneli - Eri\u015fim K\u0131s\u0131tl\u0131\";\n        auth_basic_user_file \/etc\/nginx\/.htpasswd;\n        # Bu konumdaki dosyalar\u0131n k\u00f6k dizinini belirtmek isteyebilirsiniz\n        # root \/var\/www\/admin_panel;\n        # index index.html;\n    }\n\n    location \/private {\n        # Ba\u015fka bir k\u0131s\u0131tl\u0131 alan\n        auth_basic \"\u00d6zel Alan - Sadece Yetkili Kullan\u0131c\u0131lar\";\n        auth_basic_user_file \/etc\/nginx\/.htpasswd;\n    }\n\n    # ... di\u011fer yap\u0131land\u0131rmalar ...\n}<\/code><\/pre>\n<p>Bu \u00f6rnekte, <code>\/admin<\/code> ve <code>\/private<\/code> URL&#8217;lerine eri\u015fim giri\u015fimleri i\u00e7in Nginx bir giri\u015f istemi g\u00f6sterecektir. Di\u011fer URL&#8217;ler (\u00f6rne\u011fin, ana sayfa <code>\/<\/code>) herhangi bir kimlik do\u011frulama gerektirmeden eri\u015filebilir olacakt\u0131r.<\/p>\n<p><strong>Y\u00f6ntem 3: Farkl\u0131 Kullan\u0131c\u0131 Dosyalar\u0131 ile Birden Fazla Alan\u0131 Koruma<\/strong><\/p>\n<p>Daha karma\u015f\u0131k senaryolarda, farkl\u0131 alanlar i\u00e7in farkl\u0131 kullan\u0131c\u0131 setlerine sahip olmak isteyebilirsiniz. \u00d6rne\u011fin, bir y\u00f6netici paneli i\u00e7in belirli bir y\u00f6netici grubunun, bir kullan\u0131c\u0131 portal\u0131 i\u00e7in ise farkl\u0131 bir kullan\u0131c\u0131 grubunun eri\u015fimi olabilir. Bunu ba\u015farmak i\u00e7in birden fazla <code>.htpasswd<\/code> dosyas\u0131 olu\u015fturabilirsiniz.<\/p>\n<p>\u00d6nce yeni bir parola dosyas\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo htpasswd -c \/etc\/nginx\/.htpasswd_admin admin_user\nsudo chown root:www-data \/etc\/nginx\/.htpasswd_admin\nsudo chmod 640 \/etc\/nginx\/.htpasswd_admin<\/code><\/pre>\n<p>\u015eimdi Nginx yap\u0131land\u0131rmas\u0131n\u0131 g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80 default_server;\n    listen [::]:80 default_server;\n    root \/var\/www\/html;\n    index index.html index.htm index.nginx-debian.html;\n    server_name _;\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n\n    location \/admin {\n        auth_basic \"Y\u00f6netici Paneli - Sadece Adminler\";\n        auth_basic_user_file \/etc\/nginx\/.htpasswd_admin; # Adminler i\u00e7in ayr\u0131 dosya\n    }\n\n    location \/members {\n        auth_basic \"\u00dcye Alan\u0131 - Sadece \u00dcyeler\";\n        auth_basic_user_file \/etc\/nginx\/.htpasswd; # Genel kullan\u0131c\u0131lar i\u00e7in dosya\n    }\n\n    # ... di\u011fer yap\u0131land\u0131rmalar ...\n}<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rma, <code>\/admin<\/code> URL&#8217;si i\u00e7in <code>admin_user<\/code>&#8216;\u0131n bulundu\u011fu <code>\/etc\/nginx\/.htpasswd_admin<\/code> dosyas\u0131n\u0131 kullan\u0131rken, <code>\/members<\/code> URL&#8217;si i\u00e7in daha \u00f6nce olu\u015fturdu\u011fumuz <code>\/etc\/nginx\/.htpasswd<\/code> dosyas\u0131n\u0131 kullan\u0131r.<\/p>\n<p><strong>Y\u00f6ntem 4: Kimlik Do\u011frulamay\u0131 Devre D\u0131\u015f\u0131 B\u0131rakma (Bir \u00dcst Kapsamda Etkinse)<\/strong><\/p>\n<p>E\u011fer bir <code>server<\/code> blo\u011funda genel olarak kimlik do\u011frulamay\u0131 etkinle\u015ftirdiyseniz, ancak belirli bir <code>location<\/code> blo\u011fu i\u00e7in devre d\u0131\u015f\u0131 b\u0131rakmak isterseniz, <code>auth_basic off;<\/code> y\u00f6nergesini kullanabilirsiniz.<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80 default_server;\n    # ... di\u011fer server ayarlar\u0131 ...\n\n    auth_basic \"Genel K\u0131s\u0131tl\u0131 Alan\";\n    auth_basic_user_file \/etc\/nginx\/.htpasswd;\n\n    location \/ {\n        # T\u00fcm siteye genel kimlik do\u011frulama uygulan\u0131r\n        try_files $uri $uri\/ =404;\n    }\n\n    location \/public_api {\n        # Bu API u\u00e7 noktas\u0131 i\u00e7in kimlik do\u011frulamay\u0131 devre d\u0131\u015f\u0131 b\u0131rak\n        auth_basic off;\n        # ... API i\u00e7in di\u011fer ayarlar ...\n    }\n\n    # ...\n}<\/code><\/pre>\n<p>Bu \u00f6rnekte, <code>\/public_api<\/code> d\u0131\u015f\u0131ndaki t\u00fcm URL&#8217;ler i\u00e7in kimlik do\u011frulama gereklidir. <code>\/public_api<\/code> ise kimlik do\u011frulama gerektirmeden eri\u015filebilir olacakt\u0131r.<\/p>\n<p>Yap\u0131land\u0131rma dosyas\u0131ndaki de\u011fi\u015fiklikleri kaydettikten sonra (Nano&#8217;da <code>Ctrl+O<\/code>, <code>Enter<\/code>, <code>Ctrl+X<\/code>), bir sonraki ad\u0131ma ge\u00e7ebiliriz.<\/p>\n<h3>Ad\u0131m 4: Nginx Yap\u0131land\u0131rmas\u0131n\u0131 Test Etme ve Yeniden Y\u00fckleme<\/h3>\n<p>Nginx yap\u0131land\u0131rma dosyas\u0131nda yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fiklikleri uygulamadan \u00f6nce, herhangi bir s\u00f6zdizimi hatas\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek her zaman iyi bir uygulamad\u0131r. Bu, sunucunuzun beklenmedik bir \u015fekilde durmas\u0131n\u0131 \u00f6nler.<\/p>\n<p>Yap\u0131land\u0131rmay\u0131 test etmek 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 her \u015fey yolundaysa, \u00e7\u0131kt\u0131da \u015funa benzer bir mesaj g\u00f6rmelisiniz:<\/p>\n<pre><code class=\"language-\">nginx: the configuration file \/etc\/nginx\/nginx.conf syntax is ok\nnginx: configuration file \/etc\/nginx\/nginx.conf test is successful<\/code><\/pre>\n<p>Herhangi bir hata mesaj\u0131 al\u0131rsan\u0131z, yap\u0131land\u0131rma dosyan\u0131z\u0131 dikkatlice g\u00f6zden ge\u00e7irin ve hatalar\u0131 d\u00fczeltin. Genellikle hata mesaj\u0131, hatan\u0131n hangi sat\u0131rda oldu\u011funu belirtir.<\/p>\n<p>Yap\u0131land\u0131rma testi ba\u015far\u0131l\u0131 olduktan sonra, Nginx&#8217;in yeni ayarlar\u0131 y\u00fcklemesini sa\u011flamak i\u00e7in servisi yeniden y\u00fckleyin:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl reload nginx<\/code><\/pre>\n<p>Bu komut, Nginx&#8217;i durdurup yeniden ba\u015flatmak yerine, \u00e7al\u0131\u015fan s\u00fcreci kesintiye u\u011fratmadan yap\u0131land\u0131rmay\u0131 yeniden y\u00fckler. Bu, canl\u0131 bir sunucuda hizmet kesintisini en aza indirmek i\u00e7in tercih edilen y\u00f6ntemdir.<\/p>\n<h3>Ad\u0131m 5: Kimlik Do\u011frulamay\u0131 Test Etme<\/h3>\n<p>\u015eimdi s\u0131ra, kurdu\u011fumuz parola kimlik do\u011frulamas\u0131n\u0131 test etmeye geldi.<\/p>\n<p>1.  <strong>Web Taray\u0131c\u0131n\u0131z\u0131 A\u00e7\u0131n:<\/strong> Koruma alt\u0131na ald\u0131\u011f\u0131n\u0131z URL&#8217;ye (\u00f6rne\u011fin, <code>http:\/\/your_server_ip\/admin<\/code> veya t\u00fcm siteyi koruduysan\u0131z <code>http:\/\/your_server_ip<\/code>) gidin.<br \/>\n2.  <strong>Giri\u015f \u0130stemini Bekleyin:<\/strong> Taray\u0131c\u0131n\u0131z\u0131n, &#8220;K\u0131s\u0131tl\u0131 Alan &#8211; L\u00fctfen Giri\u015f Yap\u0131n&#8221; (veya yap\u0131land\u0131rman\u0131zda belirledi\u011finiz mesaj) ba\u015fl\u0131\u011f\u0131 alt\u0131nda bir kullan\u0131c\u0131 ad\u0131 ve parola giri\u015f kutusu g\u00f6stermesi gerekir.<br \/>\n3.  <strong>Do\u011fru Kimlik Bilgileriyle Giri\u015f Yap\u0131n:<\/strong> <code>htpasswd<\/code> ile olu\u015fturdu\u011funuz kullan\u0131c\u0131 ad\u0131 ve parolay\u0131 girin. Ba\u015far\u0131l\u0131 bir giri\u015ften sonra, korumal\u0131 i\u00e7eri\u011fi g\u00f6rmelisiniz.<br \/>\n4.  <strong>Yanl\u0131\u015f Kimlik Bilgileriyle Giri\u015f Yap\u0131n:<\/strong> Taray\u0131c\u0131n\u0131z\u0131 kapat\u0131p tekrar a\u00e7arak veya \u00f6nbelle\u011fi temizleyerek yeni bir deneme yap\u0131n. Bu sefer yanl\u0131\u015f bir kullan\u0131c\u0131 ad\u0131 veya parola girin. Taray\u0131c\u0131n\u0131n tekrar giri\u015f istemi g\u00f6stermesi veya &#8220;401 Unauthorized&#8221; hatas\u0131 vermesi gerekir.<\/p>\n<p><strong>Hata Ay\u0131klama \u0130pu\u00e7lar\u0131:<\/strong><\/p>\n<p>*   <strong>401 Unauthorized Hatas\u0131:<\/strong> Bu, kimlik do\u011frulaman\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 ancak girdi\u011finiz kimlik bilgilerinin yanl\u0131\u015f oldu\u011fu anlam\u0131na gelir. Kullan\u0131c\u0131 ad\u0131n\u0131z\u0131 ve parolan\u0131z\u0131 kontrol edin.<br \/>\n*   <strong>500 Internal Server Error:<\/strong> Bu, Nginx&#8217;in parola dosyas\u0131n\u0131 okuyamad\u0131\u011f\u0131 veya ba\u015fka bir i\u00e7 hatan\u0131n oldu\u011fu anlam\u0131na gelebilir.<br \/>\n    *   <code>.htpasswd<\/code> dosyas\u0131n\u0131n yolunu kontrol edin.<br \/>\n    *   <code>.htpasswd<\/code> dosyas\u0131n\u0131n izinlerini kontrol edin (<code>sudo ls -l \/etc\/nginx\/.htpasswd<\/code>). Nginx&#8217;in \u00e7al\u0131\u015ft\u0131\u011f\u0131 kullan\u0131c\u0131 (<code>www-data<\/code> veya <code>nginx<\/code>) bu dosyay\u0131 okuyabilmelidir. Gerekirse <code>sudo chown root:www-data \/etc\/nginx\/.htpasswd<\/code> ve <code>sudo chmod 640 \/etc\/nginx\/.htpasswd<\/code> komutlar\u0131n\u0131 tekrar \u00e7al\u0131\u015ft\u0131r\u0131n.<br \/>\n    *   Nginx hata g\u00fcnl\u00fcklerini kontrol edin: <code>sudo tail -f \/var\/log\/nginx\/error.log<\/code>. Burada genellikle sorunun k\u00f6k nedenini g\u00f6steren ayr\u0131nt\u0131l\u0131 mesajlar bulunur.<br \/>\n*   <strong>Giri\u015f \u0130steminin G\u00f6r\u00fcnmemesi:<\/strong> Nginx yap\u0131land\u0131rman\u0131zda <code>auth_basic<\/code> ve <code>auth_basic_user_file<\/code> y\u00f6nergelerinin do\u011fru bir \u015fekilde yerle\u015ftirildi\u011finden ve Nginx&#8217;in yap\u0131land\u0131rmay\u0131 ba\u015far\u0131yla yeniden y\u00fckledi\u011finden emin olun.<\/p>\n<h3>Geli\u015fmi\u015f Konular ve En \u0130yi Uygulamalar<\/h3>\n<p>Temel parola kimlik do\u011frulamay\u0131 kurmu\u015f olsan\u0131z da, g\u00fcvenli\u011fi ve y\u00f6netilebilirli\u011fi art\u0131rmak i\u00e7in baz\u0131 ek konular\u0131 g\u00f6z \u00f6n\u00fcnde bulundurman\u0131z \u00f6nemlidir.<\/p>\n<h4>HTTPS Kullan\u0131m\u0131 \u015eartt\u0131r<\/h4>\n<p>Daha \u00f6nce de belirtti\u011fimiz gibi, HTTP Temel Kimlik Do\u011frulama, kimlik bilgilerini Base64 ile kodlanm\u0131\u015f ancak \u015fifrelenmemi\u015f bir bi\u00e7imde g\u00f6nderir. Bu, bir a\u011f \u00fczerindeki k\u00f6t\u00fc niyetli bir ki\u015finin (\u00f6rne\u011fin, halka a\u00e7\u0131k bir Wi-Fi a\u011f\u0131nda) trafi\u011fi dinleyerek kullan\u0131c\u0131 ad\u0131n\u0131z\u0131 ve parolan\u0131z\u0131 kolayca ele ge\u00e7irebilece\u011fi anlam\u0131na gelir.<\/p>\n<p><strong>Bu nedenle, Nginx \u00fczerinde parola kimlik do\u011frulamas\u0131 kullan\u0131rken her zaman HTTPS (SSL\/TLS) kullanmal\u0131s\u0131n\u0131z.<\/strong> HTTPS, t\u00fcm ileti\u015fimi \u015fifreleyerek kimlik bilgilerinizin g\u00fcvenli\u011fini sa\u011flar. Let&#8217;s Encrypt gibi hizmetler sayesinde \u00fccretsiz SSL\/TLS sertifikalar\u0131 almak ve Nginx ile yap\u0131land\u0131rmak olduk\u00e7a kolayd\u0131r.<\/p>\n<p>Nginx ile Let&#8217;s Encrypt kurulumu genellikle a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 i\u00e7erir:<br \/>\n1.  <code>certbot<\/code> arac\u0131n\u0131 y\u00fckleme: <code>sudo apt install certbot python3-certbot-nginx<\/code><br \/>\n2.  Sertifika alma: <code>sudo certbot --nginx -d your_domain.com -d www.your_domain.com<\/code><br \/>\n3.  Nginx yap\u0131land\u0131rmas\u0131n\u0131 HTTPS kullanacak \u015fekilde g\u00fcncelleme (Certbot bunu genellikle otomatik yapar).<br \/>\n4.  HTTP trafi\u011fini HTTPS&#8217;e y\u00f6nlendirme.<\/p>\n<h4>Brute-Force Sald\u0131r\u0131lar\u0131na Kar\u015f\u0131 Korunma<\/h4>\n<p>Temel kimlik do\u011frulama, do\u011fru bir kullan\u0131c\u0131 ad\u0131 ve parola kombinasyonunu bulmak i\u00e7in tekrar tekrar deneme yapan &#8220;brute-force&#8221; sald\u0131r\u0131lar\u0131na kar\u015f\u0131 savunmas\u0131z olabilir. Bu t\u00fcr sald\u0131r\u0131lar\u0131 hafifletmek i\u00e7in Nginx&#8217;in baz\u0131 \u00f6zelliklerini kullanabilirsiniz:<\/p>\n<p>*   <strong>H\u0131z S\u0131n\u0131rlama (Rate Limiting) ile <code>limit_req<\/code> Mod\u00fcl\u00fc:<\/strong> Nginx&#8217;in <code>limit_req<\/code> mod\u00fcl\u00fc, belirli bir s\u00fcre i\u00e7inde bir IP adresinden gelen istek say\u0131s\u0131n\u0131 s\u0131n\u0131rlaman\u0131za olanak tan\u0131r. Bu, deneme yan\u0131lma sald\u0131r\u0131lar\u0131n\u0131 yava\u015flatabilir.<\/p>\n<pre><code class=\"language-nginx\"># http blo\u011funa ekleyin (nginx.conf i\u00e7inde veya ayr\u0131 bir dosyada)\n    limit_req_zone $binary_remote_addr zone=login:10m rate=5r\/s;\n\n    server {\n        # ...\n        location \/admin {\n            limit_req zone=login burst=10 nodelay;\n            auth_basic \"Y\u00f6netici Paneli\";\n            auth_basic_user_file \/etc\/nginx\/.htpasswd_admin;\n            # ...\n        }\n        # ...\n    }<\/code><\/pre>\n<p>    Bu \u00f6rnek, <code>\/admin<\/code> konumuna bir saniyede 5&#8217;ten fazla istek gelmesini s\u0131n\u0131rlar. <code>burst=10<\/code> ile k\u0131sa s\u00fcreli 10 iste\u011fe kadar patlamalara izin verir.<\/p>\n<p>*   <strong><code>fail2ban<\/code> Kullan\u0131m\u0131:<\/strong> <code>fail2ban<\/code>, sunucu g\u00fcnl\u00fcklerini izleyen ve tekrar eden k\u00f6t\u00fc niyetli giri\u015f denemeleri yapan IP adreslerini ge\u00e7ici olarak engelleyen bir ara\u00e7t\u0131r. Nginx g\u00fcnl\u00fcklerini izleyerek brute-force sald\u0131r\u0131lar\u0131na kar\u015f\u0131 etkili bir koruma sa\u011flayabilir. <code>fail2ban<\/code>&#8216;\u0131 Nginx Basic Auth g\u00fcnl\u00fcklerini izleyecek \u015fekilde yap\u0131land\u0131rabilirsiniz.<\/p>\n<h4>Kullan\u0131c\u0131 Y\u00f6netimi<\/h4>\n<p><code>htpasswd<\/code> arac\u0131 sadece kullan\u0131c\u0131 olu\u015fturmak i\u00e7in de\u011fil, ayn\u0131 zamanda mevcut kullan\u0131c\u0131lar\u0131 y\u00f6netmek i\u00e7in de kullan\u0131l\u0131r:<\/p>\n<p>*   <strong>Yeni Kullan\u0131c\u0131 Ekleme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo htpasswd \/etc\/nginx\/.htpasswd yeni_kullanici<\/code><\/pre>\n<p>*   <strong>Mevcut Kullan\u0131c\u0131n\u0131n Parolas\u0131n\u0131 De\u011fi\u015ftirme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo htpasswd \/etc\/nginx\/.htpasswd mevcut_kullanici<\/code><\/pre>\n<p>    Bu komut, <code>mevcut_kullanici<\/code> i\u00e7in yeni bir parola ayarlaman\u0131z\u0131 ister.<br \/>\n*   <strong>Kullan\u0131c\u0131 Silme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo htpasswd -D \/etc\/nginx\/.htpasswd silinecek_kullanici<\/code><\/pre>\n<p>    <code>-D<\/code> bayra\u011f\u0131, belirtilen kullan\u0131c\u0131y\u0131 dosyadan siler.<\/p>\n<p>Herhangi bir de\u011fi\u015fiklikten sonra Nginx&#8217;i yeniden y\u00fcklemenize gerek yoktur, \u00e7\u00fcnk\u00fc Nginx <code>.htpasswd<\/code> dosyas\u0131n\u0131 her istekte okur. Ancak, dosya izinlerinin hala do\u011fru oldu\u011fundan emin olun.<\/p>\n<h4>G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/h4>\n<p>*   <strong>G\u00fc\u00e7l\u00fc Parolalar Kullan\u0131n:<\/strong> Kullan\u0131c\u0131lar\u0131n\u0131z\u0131n tahmin etmesi zor, karma\u015f\u0131k parolalar kullanmas\u0131n\u0131 te\u015fvik edin.<br \/>\n*   <strong><code>.htpasswd<\/code> Dosyas\u0131n\u0131n G\u00fcvenli\u011fi:<\/strong> Dosyan\u0131n yaln\u0131zca <code>root<\/code> ve Nginx kullan\u0131c\u0131s\u0131 taraf\u0131ndan okunabilir oldu\u011fundan emin olun. Yanl\u0131\u015f izinler hem g\u00fcvenlik a\u00e7\u0131\u011f\u0131 yaratabilir hem de Nginx&#8217;in hata vermesine neden olabilir.<br \/>\n*   <strong>Yaln\u0131zca Gerekli Alanlar\u0131 Koruyun:<\/strong> T\u00fcm sitenizi korumak yerine, yaln\u0131zca hassas i\u00e7eri\u011fe sahip alanlar\u0131 koruyun. Bu, kullan\u0131c\u0131 deneyimini iyile\u015ftirir ve gereksiz kimlik do\u011frulama y\u00fck\u00fcn\u00fc azalt\u0131r.<br \/>\n*   <strong>Daha Geli\u015fmi\u015f Kimlik Do\u011frulama Y\u00f6ntemlerini De\u011ferlendirin:<\/strong> E\u011fer ihtiya\u00e7lar\u0131n\u0131z basit Basic Auth&#8217;un \u00f6tesine ge\u00e7iyorsa (\u00f6rne\u011fin, oturum y\u00f6netimi, \u00e7ok fakt\u00f6rl\u00fc kimlik do\u011frulama, kullan\u0131c\u0131 rolleri), OAuth, JWT (JSON Web Tokens) veya LDAP entegrasyonu gibi daha geli\u015fmi\u015f kimlik do\u011frulama \u00e7\u00f6z\u00fcmlerini ara\u015ft\u0131rmay\u0131 d\u00fc\u015f\u00fcn\u00fcn. Nginx, bu t\u00fcr \u00e7\u00f6z\u00fcmlerle entegre olmak i\u00e7in farkl\u0131 mod\u00fcller veya ters proxy yap\u0131land\u0131rmalar\u0131 arac\u0131l\u0131\u011f\u0131yla kullan\u0131labilir.<\/p>\n<h4>Hata Ay\u0131klama \u0130pu\u00e7lar\u0131<\/h4>\n<p>*   <strong>Nginx Hata G\u00fcnl\u00fckleri:<\/strong> Nginx&#8217;in hata g\u00fcnl\u00fckleri (<code>\/var\/log\/nginx\/error.log<\/code>), kimlik do\u011frulama sorunlar\u0131n\u0131 te\u015fhis etmek i\u00e7in paha bi\u00e7ilmez bir kaynakt\u0131r. <code>tail -f \/var\/log\/nginx\/error.log<\/code> komutunu kullanarak ger\u00e7ek zamanl\u0131 hatalar\u0131 izleyebilirsiniz.<br \/>\n*   <strong>Taray\u0131c\u0131 Geli\u015ftirici Ara\u00e7lar\u0131:<\/strong> Taray\u0131c\u0131n\u0131z\u0131n geli\u015ftirici ara\u00e7lar\u0131ndaki &#8220;A\u011f&#8221; sekmesi, HTTP isteklerini ve yan\u0131tlar\u0131n\u0131 incelemenize olanak tan\u0131r. Burada &#8220;401 Unauthorized&#8221; yan\u0131t\u0131n\u0131 ve <code>WWW-Authenticate<\/code> ba\u015fl\u0131\u011f\u0131n\u0131 g\u00f6rebilirsiniz.<br \/>\n*   <strong>Nginx Yap\u0131land\u0131rma Kontrol\u00fc:<\/strong> <code>sudo nginx -t<\/code> komutunu d\u00fczenli olarak kullanarak yap\u0131land\u0131rma dosyalar\u0131n\u0131zda s\u00f6zdizimi hatalar\u0131 olmad\u0131\u011f\u0131ndan emin olun.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu rehberde, Ubuntu 22.04 \u00fczerinde Nginx ile HTTP Temel Kimlik Do\u011frulama kurulumunu ad\u0131m ad\u0131m \u00f6\u011frendiniz. <code>htpasswd<\/code> arac\u0131yla kullan\u0131c\u0131 parolalar\u0131n\u0131 nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131, Nginx yap\u0131land\u0131rma dosyas\u0131n\u0131 <code>auth_basic<\/code> ve <code>auth_basic_user_file<\/code> y\u00f6nergeleriyle nas\u0131l g\u00fcncelleyece\u011finizi ve farkl\u0131 senaryolara g\u00f6re nas\u0131l uyarlayaca\u011f\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde ele ald\u0131k.<\/p>\n<p>Temel kimlik do\u011frulama, web sunucunuzdaki hassas alanlara h\u0131zl\u0131 ve etkili bir eri\u015fim kontrol\u00fc sa\u011flamak i\u00e7in m\u00fckemmel bir y\u00f6ntemdir. Ancak, bu y\u00f6ntemin do\u011fas\u0131 gere\u011fi, kimlik bilgilerinin a\u011f \u00fczerinden \u015fifresiz g\u00f6nderilmesini \u00f6nlemek i\u00e7in <strong>her zaman HTTPS ile birlikte kullan\u0131lmas\u0131 gerekti\u011fi<\/strong> en \u00f6nemli g\u00fcvenlik dersidir. Ayr\u0131ca, brute-force sald\u0131r\u0131lar\u0131na kar\u015f\u0131 h\u0131z s\u0131n\u0131rlama gibi ek \u00f6nlemler alarak g\u00fcvenli\u011fi daha da art\u0131rabilirsiniz.<\/p>\n<p>Bu bilgilerle, Nginx sunucunuzdaki belirli kaynaklar\u0131 yetkisiz eri\u015fime kar\u015f\u0131 g\u00fcvenli bir \u015fekilde koruyabilir ve web altyap\u0131n\u0131z\u0131n genel g\u00fcvenli\u011fini g\u00fc\u00e7lendirebilirsiniz. \u0130htiya\u00e7lar\u0131n\u0131z b\u00fcy\u00fcd\u00fck\u00e7e veya daha karma\u015f\u0131k eri\u015fim kontrol\u00fc gerektik\u00e7e, Nginx&#8217;in esnek yap\u0131s\u0131 sayesinde daha geli\u015fmi\u015f kimlik do\u011frulama mekanizmalar\u0131na ge\u00e7i\u015f yapma se\u00e7ene\u011finiz her zaman olacakt\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Nginx ile Ubuntu 22.04 \u00dczerinde Parola Kimlik Do\u011frulama Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber\nNginx, modern web altyap\u0131lar\u0131n\u0131n temel ta\u015flar\u0131n","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-37361","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 ile Ubuntu 22.04 \u00dczerinde Parola Kimlik Do\u011frulama Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Nginx ile Ubuntu 22.04 \u00dczerinde Parola Kimlik Do\u011frulama Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber\" \/>\n<meta property=\"og:description\" content=\"Nginx ile Ubuntu 22.04 \u00dczerinde Parola Kimlik Do\u011frulama Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber Nginx, modern web altyap\u0131lar\u0131n\u0131n temel ta\u015flar\u0131n\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-01T08:40:46+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Nginx ile Ubuntu 22.04 \u00dczerinde Parola Kimlik Do\u011frulama Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber\",\"datePublished\":\"2026-01-01T08:40:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/\"},\"wordCount\":3182,\"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-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/\",\"name\":\"Nginx ile Ubuntu 22.04 \u00dczerinde Parola Kimlik Do\u011frulama Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-01T08:40:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Nginx ile Ubuntu 22.04 \u00dczerinde Parola Kimlik Do\u011frulama Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Nginx ile Ubuntu 22.04 \u00dczerinde Parola Kimlik Do\u011frulama Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"Nginx ile Ubuntu 22.04 \u00dczerinde Parola Kimlik Do\u011frulama Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber","og_description":"Nginx ile Ubuntu 22.04 \u00dczerinde Parola Kimlik Do\u011frulama Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber Nginx, modern web altyap\u0131lar\u0131n\u0131n temel ta\u015flar\u0131n","og_url":"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-01T08:40:46+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"20 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Nginx ile Ubuntu 22.04 \u00dczerinde Parola Kimlik Do\u011frulama Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber","datePublished":"2026-01-01T08:40:46+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/"},"wordCount":3182,"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-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/","name":"Nginx ile Ubuntu 22.04 \u00dczerinde Parola Kimlik Do\u011frulama Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-01T08:40:46+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/nginx-ile-ubuntu-22-04-uzerinde-parola-kimlik-dogrulama-kurulumu-adim-adim-kapsamli-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Nginx ile Ubuntu 22.04 \u00dczerinde Parola Kimlik Do\u011frulama Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37361","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=37361"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37361\/revisions"}],"predecessor-version":[{"id":37362,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37361\/revisions\/37362"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37361"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}