Nginx Nedir, Nasıl Çalışır, Kurulumu, Hata ve Çözümü

Teknoloji Severlerin, Girişimcilerin; mutlaka incelemesi ve ilham alması gereken bir PROJE. Gelin hadi sizi bir SİHİRBAZ ile tanıştırıyayım. (Oyuna gireyim mi der insan. Bu arkadaş Oyunun Kurallarını yeniden yazmış. :))

Uzun zamandır yazmak istediğim bir konuydu. Ufkunuzu açacak, emsaline az rastlayabileceğiniz web siteleriyle çalışmalar yapıyorsanız: ya kullandınız, yada kullanacaksınız hani kacarınız yok. google kaçamadı :) Aklınıza gelen devasa bütün platformlar kullanmıştır diyebilirim. (Son senelerde benzer teknolojiler çıktı.)

Hizmet verdiği; müşteri kitlesi Web Siteleridir. Şimdiye kadar Dünya genelinde toplamda 400 milyon'a yakın, Aktif olarak 50.584.278 web sitesine hizmet sağlamış.

Web sitelerin; en Temel 2 Sorunu: birincisi Hız ikincisi Yüksek, anlık trafiklerle baş edememelerine çözüm olmasıyla bu kadar popüler olmasını sağlamıştır.
İstatistikler:
Aktif olarak 50.584.278 -> İncele!
Dünyada şuanda Kaç adet web site var? ->İncele

Kullanım oranlarında Dünyada 2.ci sırada, birinciliğe ramak kalmış. Son 5 yılın popülerlik sıralamasında ise 1. Sıraya yerleşmiş.

Bir çok istatistik platformu; Haziran 2021 yılı itibarı ile kullanım tercihi olarak artık yeni Dünya liderinin bizim İlham Projemiz olduğunu söylüyor. İnceleyiniz:
Bloglarında Yayınladılar.
W3Techs bunu doğruluyor.

Bu arkadaş aslında bir Web Sunucusu ücretsiz, açık kaynak kodlu vede özgür. Bana göre tam bir KUMARBAZ sizin için burada sihirbaz diyeceğim. Gerçekteki adı ise Nginx. Bu arkadaşın kısaca ne yaptığını kendimce yorumlayım hemen merak etmeyin tüm bilgileri aşarıda yer alacak.

Nginx: Küçük ve orta ölcekli web sitelerin mükemmel hızlı çalışmasını, Yüksek trafiği olan web sitelerde ise anlık/Canlı yoğunlukların bile üstesinden gelmesi. Sihirbaz boşuna demedik :)

Web Sitenize Yüz binlerce aynı anda istek geldiğini düşünün, saldırıda olabilir. Üniversite sınav sonuçlarının açıklandığında hani bu ÖSYM'nin sitesi kapanıyor. Server çöküyor veya Korumaya alıyor. Bu arkadaş o trafik yükünü Server Makinasına göstermeden kendi yöntemleriyle hallediyor. Atma Ziya :))

Nginx Farkları

Nginx Dünyanın en popüler web sunucularından ilk 2 içerisinde yer alması ciddi bir tercih sebebi olduğunu gösteriyor.
Diğer rakipleri Apache ve Lighttpd sunucularına göre çok daha az CPU, RAM kullanarak rakiplerine oranla 2-3 kat daha hızlı çalıştığı testlerde görülmüş ayrıca o kadar küçük ve hafiftir ki yalnızca 128 MB RAM yer kaplar.

Tam bir inavasyon örneği rakiplerine göre;

  • - Daha Hızlı.
  • - Daha Küçük.
  • - Daha Çok Trafiğe Yanıt.
  • - Daha Az CPU/RAM Kullanımı.
  • - Daha Fazla Güvenlik.
Abartılacak ne varki demeyin bugün internette canlı yüzbinlerce kullanıcı ile yapılan platformların çoğunun arkasında bu var. Sadece iki müşterisi Visa ve Groupon olmak üzere 140 milyondan fazla kullanıcısı var.

Çok basit anlatımla bir internet sitesine 100 kişi aynı girmek istediğinde diğer sunucularda 100 tane ayrı ayrı istek oluşur ve server 100 kere çalışarak hepsine ayrı ayrı sitenin html halini derleyerek cevap verir.

Nginx'te ise 100 tane istek aynı olduğu için 1 kere Server'a bağlanır. Geri kalan 99 tane kullanıcıya tek cevap döner. Server ana makinayı yormadan aynı anda(salise) 10.000'den fazla eşzamanlı istek(Trafik)le de başa çıkarak yine Aynı gün içinde 1 milyon kullanıcı siteye girdiğinde onlara ön belleğe aldığı tek cevap döner.

Canlı Maç yayınları 90 dakika tek işlemde 10bin cevap dönüyor. Nginx'in hesabını Gücünü buradan yapabilirsiniz.

Nginx Çalışma Yöntemleri

Nginx Yöntemleri

Bu arkadaş Serverla Tarayıcı arasında katmanlar kurarak Gelen istekleri/trafikleri önce burada filteden geçirerek işlemliyor.

Nginx Master process: Web Siteye Gelen trafikleri ön katmanda işci ve görevlerin olduğu Asynchronous Event-Driven Modeliyle işliyor.

Nginx Reverse Proxy: Ters Vekil Sunucular oluşturup gelen istekleri Server ve Tarayıcılar arasında ileşimi katmanlarda filtrelerle eledikten sonra gerçekleştiriyor.

Nginx Cash: ön belleğe alma yapısı gelen isteğin servera gitmeden cashlediği site sayfalarını tarayıcıya gönderir.

Nginx Virtual Hosting: bir çok Sanal makina oluşturabilir. Bu sanal makinaları yoğun trafiklerin server'a zarar vermemesi kullanır.

Nginx Load Balancing: Güç Dengelemesiyle canlı yoğun trafikleri katmanlarda oluşturduğu sanal alanlara dağıtarak server yormadan üstesinden gelir.

Daha fazla detaylı bilgi için Nginx Özellikleri bakınız.

Web Sunucuları Nasıl Çalışır?

Web Sunucuları Nasıl Çalışır

Bir internet sitesine girmek için bilgiyasarımızda bulunan tarayıcı(Google, Opera, Firefox) açtıktan sonra url(adres) satırına siteadi.com olarak yazdığımızda tarayıcı sitenin bulunduğu web sunucu ile etkileşim sağlar. Web sunucusu tarayıcının istediği sayfaları tarayıcılarının yorumladığı html olarak sayfaları iletir.

Kullanıcı yani siteye girmeye çalışan ziyaretci burada http isteği yaparak sıradan basit bir istek olan sayfa açılmasını istemiş, sunucuda isteği cevaplayarak kullanıcının istediği sayfayı tarayıcıya iletmiştir.

İsteklere Request, istek sonucunda oluşan iş görev notlarına thread diyoruz. Örnekleyerek daha iyi anlamanızı sağlayalım.

Örnek: Manavda 3 kişi elma, 2 kişi armut istedi.

Web sunucuları; her istek için ayrı ayrı thread oluşturur.
Web sunucularında; toplamda 5 tane ayrı istek ve işlemleri sıralamaya sokarak ilk kim istediyse ondan başlayarak yapar.
5 istek için ayrı ayrı bir bellek ayırır. Buda cpu kullanımınına ve serverı yormaya neden olur.

Nginx Nedir

Nginx olaya dayalı, asenkron çalışma mimarisiyle; daha hızlı, kararlı, az tüketim ve yüksek performans sağlayan açık kaynaklı ücretsiz Web Sunucu yazılımıdır. Rus yazılım mühendisi Igor Sysoev tarafından 2002 yılında başlatılan, 2004 yılında engine-ex yani Nginx telafuzuyla piyasada resmi olarak yayınlanmıştır.

Ngnix ilk olarak Mail Ru için mail sunucusu olarak yapılmış fakat sonrasında geliştirmelerle HTTP, IMAP, POP3, SMTP, ters proxy, yük dengeleme, ön belleğe alma, Medya akışı Stream gibi tüm platformların çalıştığı web sunucusu şeklini almış ve neredeyse tüm işletim sistemleri üzerinde kullanılabilir durumdadır. Nginx'in çalıştığı işletim sistemleri:

  • - Unix
  • - Linux
  • - Microsoft Windows
  • - Mac OS X
  • - Solaris
  • - HP-UX
  • - AIX
  • - BSD

Ngnix Neden Kullanılır?

Nginx bu kadar tercih edilmesinin ve popüler hale gelmesinin nedenleri olarak açık kaynak kodlu, geliştirilebilir ve ücretsiz vb avantajlarının yanısıra dahada önemli olan nokta ise C10k problemine Single Thread yanıt yapısıyla çözüm niteliğinde katkı sağlaması. Çünkü C10k problemi aynı anda çok sayıda iştemci(Client) optimize edememesiyle web dünyasında yüksek hitli kullanıcıya sahip websitelerinin en büyük sorunuydu.

Nginx işte tam olarak burada devreye giriyor. İnternet kullanımı ve sosyal ağlarla çoğalan kullanıcı sayıları, yüksek trafiği ve anlık canlı hiti olan sitelerin derdine derman olacak çözümler getirmesiyle hızlı bir şekilde yayılarak popüler kullanılırlık kazandı.

Özellikle Dev web platformlarının tercihi olması ve birçok açık kaynak kodlu yazılım aileleri tercihlerinin yanı sıra geliştirilmesinede destek vermektedirler. Kullanan bazı dev platformlar(Google, Netflix, Adobe, Cloudlfare, WordPress.com) ve daha bir çok platform.

Nginx Ne İşe Yarar?

Nginx Web Sitelerin; trafik(gelen istekler) yönetimini optimize ederek sitelerin sorunsuz ve daha hızlı açılmasını sağlar. Yüz binlerce eşzamanlı trafiği dahi yönetebilir. Üzerine bunları yaparken Server(Fiziksel/Sanal) makinayı neredeyse yormadan sunucunun yükünü alarak yapar.

Nginx web dünyasında fark yaratmayı; özelliklede yüksek hiti olan, anlık canlı yoğunluğu veya saldırı altında olan ve sayfalarının hızlı açılmasına önem veren sitelerin dikatini getirdiği yeniliklerle başardı.

Nginx Nasıl Çalışır?

Nginx Master Process

Nginx Olaya dayalı, asenkron mimarisiyle(Asynchronous Event-Driven Model); Ana işlem (Master process) içinde işçi süreçleri(worker process)'ler yer alıyor.

Gelen istekler ayrı ayrı tek thread olarak işçi süreçlerinin(worker process) içinde yer alarak takibi sağlanır. Her istek nginx yapısında bir thread = worker connection olarak kabul edilir.

(worker process) içindeki işçi tamamladığı işi event olarak fırlatır denetleyicisi yakalar ve kontrol edip Master process'e iletilir. Son olarak tarayıcıya yanıt olarak gider.

Bir Worker Process bir işlemci gücü anlamında ve 1024 adet worker connection isteği barındırabilir. Bir tane worker connection ise Tek Thread isteği olarak kabul edilir.

Nginx Bir adet iş süreci(work process) yapısında sadece 1024 adet benzer isteğin (thread) üstesinden hiç zorlanmadan geldiğine göre 10.000'den fazla eşzamanlı isteklede Sunucunun RAM belleğini tüketmeden, yormadan başa çıkabilir.

Nginx Özelikleri

Cashing/Ön Bellek: Statik ve dinamik sayfa içerikleri için ön bellek sağlayarak aynı talepleri tekrarlamak yerine, sürekli ölçeklendirmek zorunda kalmayacağı için yüksek performans elde eder.

Load Balancing/Güç Dengeleme: Anlık olarak yoğun ve düzensiz gelen trafiği ara katman, sanal makina, sabit disk, işlemci, farklı bilgisayar gibi dağıtarak overload(aşırı yükleme) olmasını engelleyerek sunucuyu koruma altına alır.

Virtual Hosting/Sanal Makina: Birden fazla sunucu gibi davranabilir. Böylelikle aynı platformda birden çok sunucu hizmeti vermek söz konusu olabilir.

Reverse Proxy/Ters Vekil Sunucu: Nginx üzerinde ters vekil sunucu olarak çalışan bir katmandır. Bir istemcinin request’leri ile Nginx arasına girer ve aradaki iletişimi optimize eder. Böylelikle sunucuların yükü azaltılır ve saldırılara uğraması önlenir.
Reverse proxy’ler sunucuların varlığını ve özelliğini gizleyebilir.

Statik ve Index dosyalarını sunmak: Statik ve index dosyalarının sunumu uygulamadan alınıp nginx tarafından sunulmaz. Bunun yerine doğrudan nginx tarafından sunulur. Böylelikle uygulama ve Nginx arasındaki gereksiz iletişim önlenmiş olur.

Nginx; FastCGI, komut dosyaları için SCGI işleyicileri, WSGI uygulama sunucuları veya Phusion Passenger modülleri kullanılarak ağda dinamik HTTP içeriği sunmak için dağıtılabilir ve bir yazılım yük dengeleyicisi olarak görev yapabilir. Nginx, istekleri işlemek iin iş parçacıkları yerine zaman uyumsuz bir olaya dayalı yaklaşım kullanır. Nginx’in modüler olaya dayalı mimarisi, yüksek yükler altında daha fazla tahmin edilebilir performans sağlayabilir.
Nginx varsayılan yapılandırma dosyası nginx.conf‘dur.

Ngnix Nasıl Kurulur

Nginx kullanacağınız işletim sistemi ve Server kiraladığınız yere göre farklı, hazır kurulumları vardır. DigitalOcean üzerinden Server kiraladıysanız LEMP ile anında nginx server hazır halde kullanmanız mümkün.

Nginx Kurulum konusunda bir kaç farklı anlatım yapacağım bilgisayarınıza local veya sunucu üzerinde gibi birlikte Nginx kurulum anlatımına devam edelim.

Linux kurulumunda Cent OS için; başına yum ekleyerek örn:yum install nginx
Ubuntu ve Debian için; başına apt-get yazmamız gerekiyor.

 
			apt-get update

			apt-get install nginx
		

MAC OS Nginx Kurulumu

MacOS homebrew paket yönetimi ile kolaylıkla kurabilirsiniz. Terminalden kodumuzu yazalım:

		brew install nginx
	

Kurulum tamamlandıktan sonra Sunucumuzu terminalden çalıştıralım kodumuz:

		sudo nginx
	

İşlem Tamamlandıktan sonra tarayıcımız üzerinden url adres satırına "http://localhost:8080" yazarak kontrol edelim. "Welcome to nginx" ile karşılaştığımızda kurulum ve çalışması tamamdır.

Windows Nginx Kurulumu

Windows Nginx Kurulumu: için ilk olarak Nginx Yükleme dosyalarını sitesinden indirelim. Açılan yükleme adresinden en son ve "Stable version" yani kararlı sürümünü indirirsek sorun yaşayamayız.

Rar olarak inen dosyaları açarak bilgisayarımıza çıkartalım. C klasörü altında nginx adında bir klasör oluşturup oraya çıkartıyorum dosyaları bulması kolay olsun diye. Siz masaüstüne veya daha rahat gelen bir yere açabilirsiniz.

Dosyalar içinde .exe kurulum dosyasına çift tıklayarak kurulumu başlatalım. Tamamlandığında Tarayıcımızdan url adres satırına http://localhost yazarak kontrol edelim.

Welcome to nginx yazısını localde açtığımızda kurulum başarılı. Şimdi nginx.conf dosyasının ayarlarını yapalım. Bulunduğu klasör - > nginx\conf\nginx.conf Default ayarlar bu şekildedir.

		server {
	        listen       80;
	        server_name  localhost;
	        location / {
	        	//proxy_pass http://siteadi.com; //başka bir siteye yönlendirme yapabilirsiniz.
	            root   html;
	            index  index.html index.htm;
	        }
	    }
	

Buradaki kodlarımızı düzenleyerek 80 portunu değiştirebiliriz.

		server {
	        listen       8088;
	        server_name  localhost;
	        location / {
	            root   html;
	            index  index.html index.htm;
	        }
	    }
	

Url adres satırına http://localhost:8088 yazarak açalım. Welcome to nginx yazısını aldıysak sorun yok demektir.

nginx işlemlerini görmek için comman-line satırına:

tasklist /fi "imagename eq nginx.exe"

nginx durdurmak için comman-line satırına:

nginx -s stop

Windows'ta Nginx'i çalıştırmak IIS Etkinleştirme

İşlemler: Denetim Masası -> Programlar -> Programlar ve özellikler açalım orada "Windows özelliklerini etkinleştir veya devre dışı bırak" satırını tıklayarak Açılan pencerede, “İnternet Bilgi Servisleri” satırını bulacağız, “Web yönetim araçları” bölümünü görüntüleyeceğiz ve ardından “IIS Yönetim Konsolu” kutusunu etkinleştireceğiz:

(IIS) microsoft izni adımı çok önemlidir, Windowslar'da Nginx'i çalıştırmak ve sayfaların HTML dosyalarının yönetilebileceği bir Microsoft web sunucusu olan Internet Information Services'ı (IIS) kullanmamız gerekecektir.

"Administracion IIS" yada "IIS Management Console" Bu kutuyu seçtikten sonra Tamam'a tıklayın ve bu, Windows'un bu özelliğini etkinleştirmek için işleme yol açacaktır:

Dosyalar onaylandıktan sonra değişiklikler uygulanacaktır: Bu iş bittiğinde Asistandan çıkmak için Kapat'a tıklayın.

IIS Yöneticisi'ne Başlat menüsünden erişebiliriz: Burada, genellikle “inetpub wwwroot” adresinde bulunan varsayılan web sitesine erişebileceksiniz. Bu aynı zamanda web uygulaması kökü olarak da bilinir .

Bu kökün yolunu daha uygun bir klasöre hatırlamak için değiştirmek faydalıdır. C: \ içinde nginx adında klasör oluşturmuştum. Orayı vereceğim.

Şimdi nginx.conf dosyasının ayarlarını yapalım. Bulunduğu klasör - > C: \nginx\conf\nginx.conf dosyasında klasör yolunu değiştireceğiz.

		server {
	        listen       80;
	        server_name  localhost;
	        location / {
	            root   "C:\nginx";
	            index  index.html index.htm;
	        }
	    }
	

Kök klasörümüzün içinde index.html adında dosya oluşturalım dosya yolu "C:\nginx\index.html" böyle olacak şekilde. Şimdi, Nginx.exe programını bir kez daha çalıştırın ve Url adres satırına http://localhost yazarak açalım.

Welcome to nginx yazısını aldıysak sorun yok demektir. Windows'ta nginx kurulumu ve IIS ayarlarının yapılarak localde çalıştırılması bukadar.

Centos Nginx Kurulumu

CentOS Nginx Kurulumu ilk olarak sunucumuza ssh ile bağlandıktan sonra sırasıyla komutları yazalım:

		//güncel olmayan paketleri güncelleyelim
			sudo yum update -y
		//nginx aratıp değerlerini kontrol edelim versiyonlarımız uyumlu mu diye	
			sudo yum search nginx
		//Kuruluma Başlayalım	
			sudo yum install nginx -y
		//Nginx Başlatabiliriz	
			sudo systemctl start nginx
	

Kurulumu yaptık ve nginx sunucumuzu başlattık. Bir sorunla karşılaşmadıysak Güvenlik duvarı için komutları sırasıyla girelim

		sudo firewall-cmd --permanent --zone=public --add-service=http
		sudo firewall-cmd --permanent --zone=public --add-service=https
		sudo firewall-cmd --reload
	

Sunucumuzun http ve https protokolü güvenlik duvarı işlemlerinde "success" başarıyla tamamlandı sonucunu aldıkan sonra Nginx ve yüklenen paketlerini inceleyim. Komutumuz:

 sudo yum info nginx 

Herşey tamamlandığına göre sunucumuzun ip adresi ile tarayıcıda kontrol edelim. İp bilmiyorsanız kodumuzu terminalden yazalım:

		//ip sorma komutları 
			ip addr
			ifconfig
			curl -4 icanhazip.com
	

Tarayıcınızın url adres satırına http://sunucuipadresi yazdığınızda Açılan sayfada "Welcome to Nginx" yazıyorsa centOS nginx kurulumu ve çalıştırılması tamamlanmıştır.

CentOS Program Kaldırma ve Silme Komutları

 
		//Programadi yazan yere yüklediğiniz paketin adını
			sudo yum remove programadi -y

		//Biz Nginx kaldıracağımız için
			sudo yum remove nginx -y


		//Nginx ayar dosyaları /etc/nginx/  konumunda yer alır. Silmek için aşardaki komutu
			sudo rm -R /etc/nginx

		//Nginx log dosyaları /var/log/nginx/ konumunda yer alır. Silmek için aşardaki komutu
			sudo rm -R /var/log/nginx
	

Ubuntu Nginx Kurulumu

Nginx ubuntu kütüphanelerinde mevcut olduğu için apt paketlerini kullanarak Terminal üzerinden Server bağlandıktan sonra kodlarımızı yazalım:

		sudo apt update
		sudo apt install nginx
	

Gelen prosedürü onayladıktan sonra Nginx ve gereksinimleri yükleyecek. İşlem tamamlandıktan sonra güvenlik duvarı ayarlarımızı yapalım.

Nginx kurulum esnasında Ufw ile kendini hizmet olarak görür ve erişimi kolaylaştırır. Ufw Ugulama yapılandırmalarını terminal üzerinden yapalım kodumuz:

 sudo ufw app list 

Nginx için 3 profil vardır. Çıktı olarak bize bunları ekrana şöyle basacak:

		OutputAvailable applications:
		  Nginx Full
		  Nginx HTTP
		  Nginx HTTPS
		  OpenSSH
	

Nginx Full: Hem 80 numaralı bağlantı portu (normal, şifrelenmemiş web trafiği) hem de 443 numaralı bağlantı portu (TLS/SSL şifreli trafik) anlamındadır.
Nginx HTTP: Yalnızca 80 numaralı bağlantı portu açar (normal, şifrelenmemiş web trafiği).
Nginx HTTPS: Yalnızca 443 numaralı bağlantı portu (TLS/SSL şifreli trafik) açar
İlk olarak 80 numaralı HTTP portunu etkinleştirerek trafiğe onay verelim. Terminalden kodumuzu yazalım:

 sudo ufw allow 'Nginx HTTP'

Değişiklikleri komut ile doğrulayalım:

 sudo ufw status 

Çıktı olarak "OutputStatus: active" yazdıysa işlem başarılı. Burada Nginx Sunucuyu yeniden başlatır.

Not: Sunucumuzda ssl yani https ile bağlantı ayarları için komutumuz:

 
		sudo ufw allow 'Nginx HTTPS'
		sudo ufw status
	

Şimdi Sunucumuzu kontrol edelim. Kodumuz:

 systemctl status nginx 

Çıktı olarak "Output● nginx.service - A high performance web server and a reverse proxy server" işlemin başarılı olduğunu belirtir.
Sunucuyu İP üzerinden kontrol etmekte fayda var. İp bilmiyorsanız kodumuzu terminalden yazalım:

 curl -4 icanhazip.com 

Tarayıcınız üzerinden url adres satırına http://sunucunuzunipadresi yazıp test edebilirsiniz. Açılan sayfada "Welcome to Nginx" klasik sayfasıyla karşılaşırsanız herşey harika gidiyor demektir.

Nginx Sunucu Yönetim Komutları:

		//sunucuyu başlatmak için
			sudo systemctl start nginx

		//sunucuyu durdurmak için
			sudo systemctl stop nginx
		
		//sunucuyu durdurup Yeniden başlatmak için
			sudo systemctl restart nginx

		//Sunucuda bağlantıları kesmeden başlatmak için
			sudo systemctl reload nginx

		//Sunucu otomatik çalıştığında başlaması için 
			sudo systemctl enable nginx

		//Sunucu otomatik çalıştığında başlamasını devre dışı bırakmak için
			sudo systemctl disable nginx
	

Nginx Birden Fazla Site

Nginx Sunucu Blokları birden fazla siteyi tek makina üzerinde çalıştırmanıza olanak sağlayan yapıdır. Web Site dosyalarını dizin olarak her site için güvenlik ilkeleri, Ssl sertifikalarıyla birlikte kullanabilir ve çok daha fazlasını yapabilirsiniz.

Nginx sunucu bloklarını: Apache Sanal Ana Bilgisayarlarına benzer yapısını nasıl yapabileceğiniz hakkında adım adım birlikte uygulamalı talimatlarla yapacağız.

Birden Fazla Site Tek Sunucuda Nasıl Çalışır ? Apache için konularına buradan ulaşabilirsiniz:
İncele!
İncele!

Nginx Site Dizin Yapıları

  • Site1 .com
    • public_html
  • Site2 .com
    • public_html
  • Site3 .com
    • public_html

Sunucu Blokları /var/www dizini altında barındırmak istediğimiz her web site için ayrı bir klasör ve her birinde, etki alanı web sitesi dosyalarını depolayacak bir public_html dizini oluşturacağız. Sunucumuza ssh ile bağlandıktan sonra komutumuz:

			sudo mkdir -p /var/www/site1com/public_html
			sudo mkdir -p /var/www/site2com/public_html
			sudo mkdir -p /var/www/site3com/public_html
		

Etki alanı belgesine kök dizininin sahipliğini atayalım.

			sudo chown -R $USER:$USER /var/www/site1com/public_html
			//sudo chown -R www-data: /var/www/example.com

			//dosyaların izin vermek için aşağıdaki komutu girebilirsiniz:
			//sudo chmod -R 755 /var/www/site1com
		

Etki alanlarının içine index.html dosyası oluşturup içine "Success! Helo site1com Server Çalışıyor!" yazısını yükleyelim. Dizin yolları böyle olacak şekilde /var/www/site1com/public_html/index.html

Ubuntu ve Nginx sunucu blokları varsayılan olarak şöyledir:
yapılandırma dosyaları dizini: /etc/nginx/sites-enabled/
etkinleştirilen dosyaların depolanma dizini: /etc/nginx/sites-available

Nginx içeriği sunduğu /etc/nginx/sites-available/ dizini içine alan adınızla server konfigürasyon dosyası oluşturalım. Komut kodumuz:

			sudo nano /etc/nginx/sites-available/site1com
		

Oluşturduğumuz site1com konfigürasyon dosyasına aşarıdaki yapılandırma kodunu yazalım:

			server {
			        listen 80;
			        listen [::]:80;

			        root /var/www/site1com/html;
			        index index.html index.htm index.nginx-debian.html;

			        server_name site1com www.site1com;

			        location / {
			            try_files $uri $uri/ =404;
			        }
			}
		

Etki alanı konfigürasyon dosyasını Nginx tarafından okunan sites-enabled dizinine bağlantı kurarak etkinleştirelim.

			sudo ln -s /etc/nginx/sites-available/site1com /etc/nginx/sites-enabled/
		

Yapılandırma işlemi: site1com yönergelerine göre Nginx sunucu bloğu isteklere yanıt verecek şekilde etkinleştirildi.
server_name: site1com ve www.site1com olarak gelen isteklere cevap verecek.
default: 80 numaralı bağlantı diğer bloklarla eşleşmeyen tüm isteklere cevap verir.

Ek/alt alan adlarının eklenmesiyle oluşabilecek hash bucket memory sorununu önlemek için /etc/nginx/nginx.conf dosyasında bir ayar yapmak gerekiyor. Dosyayı aç:nginx.conf

sudo nano /etc/nginx/nginx.conf

nginx.conf dosyası içinde server_names_hash_bucket_size yönergesini bulun ve satırın yorumunu kaldırmak için # sembolünü kaldırın.

			...
			http {
			    ...
			    server_names_hash_bucket_size 64;
			    ...
			}
			...
		

Nano kullanıyorsanız, CTRL ve W tuşlarına basarak aradığınız kelimeyi hızlıca bulabilir. İşlemi tamamladıktan sonra CTRL+X sonra Y ve Enter ile kayıt edip kapatabilirsiniz.

Nginx dosyalarınızda yazım hatası olmadığından emin olmak için kontrol ediniz:

sudo nginx -t

Bir hata almadıysanız, Değişikliklerin etkili olabilmesi için Nginx yeniden başlatın!

sudo systemctl restart nginx

Bir uyarı almadıysanız url adres satırından http://site1com yazarak test edebilirsiniz. "Success! Helo site1com Server Çalışıyor!" Yazısını Ekranda gördüyseniz tüm işlemler başarıyla sonuçlandı.

Nginx Sunucu Konfigürasyonu ve Loglar

/etc/nginx: dizini altında yer alır.
/etc/nginx/nginx.conf: Ana Nginx yapılandırma dosyası,
"/etc/nginx/snippets:" tekrarlanabilir yapılandırmaları burada tanımlayabilir.
/var/log/nginx/access.log:Nginx’e gelen tüm istekler burada depolanır.
/var/log/nginx/error.log: Hatalar burada yer alır.

Nginx çok geniş kitlelere etkileşimler kurabileceğiniz; hızlı, sorunsuz zengin alt yapısıyla dijitalde fark yaratmanıza teknoloji "gücü" sağlıyor.

Nginx 403 Hatası

Siteyi yayına aldınız ama cssleri görmüyor veya başka bir problemden dolayı nginx 403 forbidden hatasını aldığınızda çözümü:

1) plesk panelde Apache ve nginx Ayarlarına girin!
2) Sembolik bağlantıları izleme yeteneğini kısıtlayın tikini kaldırıp onaylayın.

Nginx 502 Bad Gateway Hatası

Apache ve nginx Ayarları girin ve Ek Nginx direktifleri olan kısıma aşardakileri kopyalayın ve yapıştırın.

		open_file_cache max=1000 inactive=20s;
		open_file_cache_valid 30s;
		open_file_cache_min_uses 5;
		open_file_cache_errors off;

		client_header_timeout  3m;
		client_body_timeout    3m;
		send_timeout           3m;

		proxy_buffer_size 128k;
		proxy_buffers 4 256k;
		proxy_busy_buffers_size 256k;
	

Nginx Site Hızlandırma Yöntemi

Apache ve nginx ayarları girin ve ek nginx direktifleri olan kısıma aşardakileri kopyalayın ve yapıştırın.

		gzip         on;
		gzip_disable "MSIE [1-6]\.(?!.*SV1)";
		gzip_proxied any;
		gzip_types   text/plain text/css application/x-javascript application/javascript text/xml application/xml application/xml+rss text/javascript image/x-icon image/bmp image/svg+xml;
		gzip_vary    on;
	

Ngnix Plesk Ayarları

Genel Ayarları olarak yapabilirsiniz; Apache ve nginx ayarlarına girin ve ek nginx direktifleri olan kısıma aşarıdakileri kopyalayın ve yapıştırın.

		gzip         on;
		gzip_disable "MSIE [1-6]\.(?!.*SV1)";
		gzip_proxied any;
		gzip_types   text/plain text/css application/x-javascript application/javascript text/xml application/xml application/xml+rss text/javascript image/x-icon image/bmp image/svg+xml;
		gzip_vary    on;

		gzip_disable "MSIE [1-6].";
		location ~* .(woff|eot|ttf|svg|mp4|webm|jpg|jpeg|png|gif|ico|css|js)$ {
			expires 365d;
		}

		open_file_cache max=1000 inactive=20s;
		open_file_cache_valid 30s;
		open_file_cache_min_uses 5;
		open_file_cache_errors off;

		client_header_timeout  3m;
		client_body_timeout    3m;
		send_timeout           3m;

		proxy_buffer_size 128k;
		proxy_buffers 4 256k;
		proxy_busy_buffers_size 256k;
	
Creativecommons.org
Bu çalışmanın içeriği, Creative Commons Atıf 2.5 lisansı koşulları altında kullanılabilir . Bu çalışmanın daha fazla dağıtımı,paylaşımı: ismailgultekin(com)a ve çalışmanın başlığına, Kaynak vererek atıfta bulunulmalıdır.

Telif Hakkı:

Problemi Şikayet Et!
Web Yazılımları

Web Yazılımları

Conference Articles

Conference Articles

Evimde Gör

Mobil Uygulamalar

Özel Yazılımlar

Özel Yazılımlar

Orsam Ortadoğu

Orsam Ortadoğu

Haydi El Ele

Haydi El Ele

Makina Yazılımları

Makina Yazılımları

Soru Sor Whatsapp

Görüş Hata Bildir

Güvenlik Kodunuz:

Yorum Yap

Yorum kodunuz:

0.0510