Nginx web sitesi hizmeti

Nginx Yüksek performanslı bir HTTP ve ters proxy sunucusu ve ayrıca bir IMAP / POP3 / SMTP proxy sunucusudur

Nginx'in apache'ye göre avantajları:

  • Hafiftir, apache'ye göre daha az bellek ve kaynak kullanır
  • Anti-eşzamanlılık, nginx işleme istekleri eşzamansızdır ve engellemezken apache engelleme yapar. Yüksek eşzamanlılık altında, nginx düşük kaynakları, düşük tüketimi ve yüksek performansı koruyabilir
  • Nginx çok basit bir kurulum, çok kısa bir yapılandırma dosyası (perl sözdizimi desteklenir) ve çok az hata içeren bir sunucudur:
  • Nginx yapılandırması basittir, Apache karmaşıktır
  • Nginx, Apache'den daha yüksek statik işleme performansına sahiptir
  • Nginx statik dosyaları iyi işler ve daha az bellek tüketir
  • Nginx'in yük kapasitesi apache'ninkinden çok daha yüksektir.
  • Nginx, iki ana noktada apache'den üstündür: 1. Nginx'in kendisi bir ters proxy sunucusudur 2. Nginx, 7 katmanlı yük dengelemeyi destekler; Nginx,
  • Apache daha yüksek eşzamanlılığı destekler
  • Nginx, yapılandırma dosyası basittir ve normal yapılandırma birçok şeyi basitleştirir.Yüksek verimliliğe sahiptir, daha az kaynak kullanır ve güçlü proxy işlevlerine sahiptir. Ön uç yanıt sunucuları için çok uygundur. Nginx iyi eşzamanlılığa ve düşük CPU bellek kullanımına sahiptir.

Apache'nin nginx'e göre avantajları:

  • yeniden yazma, nginx'in yeniden yazımından daha güçlü
  • Apache'nin dinamikleri işlemede avantajları vardır;
  • Genel olarak, performans gerektiren web servisleri için nginx kullanın. Performansa değil kararlılığa ihtiyacınız varsa, apache
  • Web sunucusu olarak: Apache ile karşılaştırıldığında, Nginx daha az kaynak kullanır, daha fazla eşzamanlı bağlantıyı destekler ve daha yüksek verimliliği yansıtır.Yüksek bağlantı eşzamanlılığı durumunda, Nginx, Apache sunucusuna iyi bir alternatiftir:
  • Apache'nin PHP desteği nispeten basittir ve Nginx'in diğer arka uçlarla kullanılması gerekir
  • Apache, Nginx'ten daha fazla bileşene sahiptir
  • Apache, eşzamanlı çok işlemli bir modeldir, bir bağlantı bir işleme karşılık gelir; nginx eşzamansızdır, birden çok bağlantı bir işleme karşılık gelebilir
  • Nginx'in dinamik istekleri işleme yeteneği zayıftır ve genellikle dinamik isteklerin apache tarafından yapılması gerekir. Nginx yalnızca statik ve ters için uygundur.
  • Nginx, PHP'nin kendisini işleme işlevini sağlamaz ve PHP'nin FastCGI entegrasyonunu sağlamak için üçüncü taraf bir modül gerektirir.

Nginx (motorx olarak telaffuz edilir), performans optimizasyonu için özel olarak geliştirilmiştir.En bilinen avantajları, kararlılığı ve düşük sistem kaynak tüketiminin yanı sıra HTTP eşzamanlı bağlantıları için yüksek işleme kapasitesidir (tek bir fiziksel sunucu 30.000 ila 50.000 eşzamanlı isteği destekleyebilir ). Bu nedenle sosyal ağ siteleri, haber bilgileri, e-ticaret ve sanal barındırma gibi hizmetler sunan çok sayıda şirket, WEB hizmetlerini sağlamak için Ngnix'i seçmiştir.

2. Nginx kurulumu ve operasyon kontrolü:

Şu anda, Nginx'in en son kararlı sürümü 1.0.8'dir ve geliştirme sürümü 1.1.6'dır. Yükleme dosyaları, resmi web sitesinden indirilebilir. Aşağıda, nginx'in kurulum ve işletim kontrolünü tanıtmak için bir örnek olarak kararlı sürüm alınmıştır. .

Nginx'i derleyin ve yükleyin

1) Destekleyici yazılımı yükleyin:

Nginx'in konfigürasyonu ve çalışması, pcre, zlib ve diğer yazılım paketlerinin desteğine ihtiyaç duyar.Bu nedenle, bu yazılımların geliştirme paketleri (devel), Nginx kurulumunun sorunsuz bir şekilde tamamlanmasını sağlamak için ilgili kitaplıkları ve başlık dosyalarını sağlamak için önceden kurulmalıdır.

# yum -y pcre-devel zlib-devel'i yükle

2) Çalışan kullanıcılar ve gruplar oluşturun:

Nginx hizmet programı varsayılan olarak hiç kimse olarak çalışmaz.Erişim haklarını daha doğru bir şekilde kontrol etmesi, esnekliği artırması ve güvenlik risklerini azaltması için özel bir kullanıcı hesabı oluşturulması tavsiye edilir.

Örneğin: nginx adlı bir kullanıcı oluşturun, bir ana dizin oluşturmayın ve kabuk ortamında oturum açmak yasaktır.

# useradd -M -s / sbin / nologin nginx

3) nginx'i derleyin ve kurun:

Nginx kaynak paketini serbest bırakın

# tar zfxv nginx-1.0.8.tar.gz

Derlemeden önce yapılandırma:

# cd nginx-1.0.8

# ./configure --prefix = / usr / local / nginx --user = nginx --group = nginx --with-http_stub_status_module

Not: Yapılandırmadan önce lütfen şu adrese bakın: ./configure - talimatlar için yardım

  • --prefix: Nginx kurulum dizinini ayarla
  • --user ve --group: Nginx'in çalıştırdığı kullanıcı ve grubu belirtin
  • --with-http_stub_status_module: durum istatistiklerini desteklemek için http_stub_status_module modülünü etkinleştirin

Derleyin ve kurun:

Bu noktada, Nginx kurulumu tamamlanmıştır.Nginx sunucusunu daha kullanışlı hale getirmek için, nginx ana programı için bir bağlantı dosyası oluşturabilirsiniz, böylece yönetici, Nginx'in ana programını çağırmak için doğrudan nginx komutunu çalıştırabilir.

# ln -s / usr / local / nginx / sbin / nginx / usr / local / sbin /

# ls -l / usr / local / sbin / nginx

Nginx operasyon kontrolü:

Apache'nin ana programı httpd'ye benzer şekilde, Nginx'in ana programı da yanlış veya yanlış yapılandırmayı bulmak için yapılandırma dosyasını kontrol etmek için "-t" seçeneğini sunar. Yapılandırma dosyası nginx.conf, varsayılan olarak kurulum dizininin conf / alt dizininde bulunur. Diğer konumlarda bulunan yapılandırma dosyalarını kontrol etmek için, yolu belirtmek için "-c" seçeneğini kullanabilirsiniz.

# nginx -t

Nginx'i başlatın ve durdurun:

Nginx sunucusunu başlatmak için doğrudan nginx'i çalıştırın. Bu yöntem varsayılan yapılandırma dosyasını kullanacaktır. Başka bir yapılandırma dosyası kullanmak istiyorsanız, yolu belirtmek için "-c yapılandırma dosyası yolu" seçeneğini eklemeniz gerekir. Sunucuya httpd gibi başka bir WEB servis yazılımı yüklenmişse, çakışmaları önlemek için önlemlerin alınması gerektiği unutulmamalıdır.

Nginx programının izleme durumunu kontrol ederek veya tarayıcıda bu WEB hizmetine erişerek (varsayılan sayfada "nginx'e hoş geldiniz!" Görüntülenecektir), Nginx hizmetinin normal şekilde çalışıp çalışmadığını onaylayabilirsiniz.

Veya elinks tarayıcısını kullanın (elinks yazılım paketini yüklemeniz gerekir. Yum-y installelinks) [nss_compat_ossl and elinks]

Not: Güvenlik duvarında bağlantı noktası 80 iletişimine izin verin.

Nginx hizmetini durdurun:

#Killall -9 nginx

Nginx işlemi çalışırken, PID numarası, varsayılan olarak logs / dizinindeki nginx.pid dosyasında saklanır. Yani bunun yerine kill komutunu kullanırsanız, bunu nginx.pid dosyasındaki PID numarasına göre de kontrol edebilirsiniz.

Nginx hizmetini başlatma, durdurma, yeniden yükleme ve diğer işlemleri daha rahat hale getirmek için, RHEL sisteminin yönetim alışkanlıklarına daha uygun olan Nginx hizmet betikleri yazabilir ve yönetim için chkconfig ve hizmet araçlarını kullanabilirsiniz.

Komut dosyası içeriği aşağıdaki gibidir:

#! / bin / bash

# chkconfig: 23459920

# description: Nginx Hizmet Kontrol Komut Dosyası

PROG = "/ usr / local / nginx / sbin / nginx"

PIDF = "/ usr / local / nginx / logs / nginx.pid"

durumda "$ 1"

Başlat)

$ PROG -t > / dev / null

ise

sonra

PROG

echo "Nginx hizmeti başlama başarısı."

Başka

$ PROG -t

fi

;;

Dur)

kill -s QUIT $ (cat $ PIDF)

echo "Nginx hizmeti durdurma başarısı."

;;

tekrar başlat)

$ 0 stop

$ 0 başlangıç

;;

Tekrar yükle)

$ PROG -t > / dev / null

ise

sonra

kill -s HUP $ (cat $ PIDF)

echo "Nginx yapılandırma başarısını yeniden yükle."

Başka

$ PROG -t

fi

;;

*)

echo "Kullanım: $ 0 {başlat | durdur | yeniden başlat | yeniden yükle}"

çıkış 1

esac

Aşağıdaki ekran görüntüsü:

Not: Aşırı yük yapılandırmasını belirtmek için kill veya killall komutuyla HUP sinyali gönderin, yeni yapılandırmayla yeni bir iş süreci başlatın

Eski çalışma sürecini kapatın. ÇIKIŞ sinyali, işlemden çıkmak anlamına gelir ve KILL sinyali, işlemi sonlandırmak anlamına gelir. "-S" seçeneği aracılığıyla sinyal türünü belirtin .

Sistem hizmeti olarak ekleyin.

# chmod + x /etc/init.d/nginx

# chkconfig --add nginx

Bu şekilde, Nginx sunucusunu nginx komut dosyası aracılığıyla başlatabilir, durdurabilir, yeniden başlatabilir ve yeniden yükleyebilirsiniz.

3. Yapılandırma dosyası nginx.conf:

Nginx sunucusunun ana yapılandırma dosyası nginx.conf'ta, genel yapılandırma, G / Ç olay yapılandırması ve HTTP yapılandırması dahil olmak üzere üç ana içerik vardır. Yapılandırma ifadesinin biçimi "anahtar sözcük değeri" dir (sonunda noktalı virgül ile biter), "#" İle başlayan kısım bir açıklamayı gösterir.

1) Global yapılandırma

Çeşitli konfigürasyon ifadelerinden oluşur ve belirli sınırlandırma etiketleri kullanmaz. Global konfigürasyon bölümü, çalışan kullanıcı, çalışma işlemi sayısı, hata günlüğü ve PID depolama konumu gibi temel ayarları içerir.

Ortak yapılandırma öğeleri:

usernobody; // Çalışan kullanıcı, Nginx'in çalıştıran kullanıcısı aslında derleme zamanında belirtilen nginx'tir, derleme zamanında belirtilmezse, varsayılan olarak hiç kimse olmaz

worker_processes 2; // nginx tarafından başlatılan işçi işlemlerinin sayısını belirtin, CPU sayısına göre belirtmeniz önerilir, genellikle bunun katı

worker_cpu_affinity 0000000100000010; // Her bir işleme cpu atayın.Yukarıdaki örnekte 2 işlem iki cpus'a atanmıştır.Elbette birden fazla yazabilir veya birden fazla cpu'ya bir işlem atayabilirsiniz.

worker_rlimit_nofile 102400; // Bu talimat, bir nginx işlemi tarafından açılan maksimum dosya sayısını ifade eder. Teorik değer, maksimum açık dosya sayısının (ulimit -n) nginx işlemlerinin sayısına bölünmesi olmalıdır, ancak nginx tahsis istekleri o kadar tek tip değildir, bu nedenle çoğu Ulimit -n değeri ile tutarlıdır. (Maksimum açık dosya sayısı "ulimit -n değeri" ile değiştirilebilir)

error_loglogs / error.log; // Genel hata günlüğü dosyasının konumu

pidlogs / nginx.pid; // PID dosyası konumu

2) G / Ç olay yapılandırması:

Nginx işleminin G / Ç yanıt modelini, her işlemin bağlantı sayısını ve diğer ayarları belirtmek için kullanılan işareti tanımlamak için "olayları {}" kullanın

Etkinlikler {

epool kullanın; / / epool modelini kullanın, 2.6'nın üzerindeki çekirdekler için, performansı artırmak için epool modelinin kullanılması önerilir

worker_connections 4096; // İşlem başına izin verilen maksimum bağlantı sayısı (varsayılan 1024), işlem başına bağlantı sayısı gerçek ihtiyaçlara göre belirlenmelidir, genellikle 10.000'in altında, teorik olarak nginx sunucusu başına maksimum bağlantı sayısı

worker_processes * worker_connections, sunucunun donanımına ve bant genişliğine bağlı olarak.

}

3) HTTP yapılandırması

Erişim günlükleri, HTTP bağlantı noktaları, web dizinleri, varsayılan karakter kümeleri, bağlantı tutma, sanal konaklar ve PHP ayrıştırma gibi bir dizi ayar dahil olmak üzere etiketleri tanımlamak için "http {}" kullanın. Yapılandırma ifadelerinin çoğu "servier {}" alt tanım etiketinde bulunur.

http {

#Mime türünü ayarlayın, Yani, conf / dizinindeki mime.types dosyasındaki ayarlar.

Includemime.types;

default_type uygulaması / sekizli akışı;

# Günlük biçimini ayarla

log_formatmain '$ remote_addr- $ remote_user "$ istek"'

'$ status $ body_bytes_sent "$ http_referer"

'"$ http_user_agent" "$ http_x_forwarded_for"';

# Erişim günlüğünü ayarla

access_log günlükleri / access.log main;

sendfileon; // Dosya gönderme desteği (indir)

keepalive_timeout 65; // Bağlantı zaman aşımını koruyor

#Sanal konağı kur

server {// Sanal konağı yapılandırmak için kullanılır

listen80; // Web hizmeti izleme ayarları "IP adresi: bağlantı noktası" şeklinde olabilir

server_name www.lnmp.com web sitesi adı, boşluklarla ayırarak birden fazla isim yazabilirsiniz;

location / {// Aşağıdaki yolun nasıl eşleştirileceğini gösterir

index index.html; // Varsayılan ana sayfa

root html; // Web sayfasının kök dizininin konumu. Varsayılan, Nginx kurulum dizini altındaki html / alt dizindir. Kök ifadesi, belirli bir erişim konumunun web belgesi yolunu ayarlamak için kullanılır. Gerektiğinde / var / www / html gibi diğer yollara değiştirilebilir.

}

charset gb2312; // Web sayfasının varsayılan karakter kümesi

# Bu sanal konağın erişim günlüğünü ayarlayın

access_log günlükleri / www.lnmp.com.access.log main;

error_page 500502503504 / 50x.html; // dahili hata geri bildirim sayfası

location = /50x.html {

kök html;

}

}

}

Nginx konumu

Temel sözdizimi:

konum / uri / {}

  • = Tam eşleşme anlamına gelir
  • ~ : Büyük / küçük harfe duyarlı eşleştirme için
  • ~ *: Büyük / küçük harfe duyarlı olmayan eşleştirme için
  • ! ~ :ile ! ~ * Büyük / küçük harfe duyarlı uyumsuzluk ve büyük / küçük harfe duyarlı olmayan uyumsuzluklardır
  • Normal ifade eşleştirme, burada:
  • Dosya ve dizin eşleşiyor, burada:
  • -f ile ! -f Bir dosyanın mevcut olup olmadığını belirlemek için kullanılır
  • -d ile ! -d Bir dizinin mevcut olup olmadığını belirlemek için kullanılır
  • -e ile ! -e Bir dosya veya dizinin mevcut olup olmadığını belirlemek için kullanılır
  • -x ile ! -x Dosyanın yürütülebilir olup olmadığını belirlemek için kullanılır

Örnek 1:

konum = / {

# Yalnızca eşleşme / sorgu.

}

yer/ {

# Tüm istekler / ile başladığından herhangi bir sorguyla eşleşir. fakat Normal ifade kuralları Ve uzun engelleme kurallarına öncelik verilecek ve sorgu ile eşleştirilecektir

}

Örnek 2:

konum ^ ~ / resimler / {

# / İmages / ile başlayan herhangi bir sorguyu eşleştirin ve aramayı durdurun. Herhangi bir normal ifade test edilmeyecektir.

}

Örnek 3:

konum ~ * \. (gif | jpg | jpeg) $ {

# Gif, jpg veya jpeg ile biten herhangi bir isteği eşleştirin.

}

4. Durum istatistikleri ve sanal ana bilgisayar uygulaması:

1) Nginx, mevcut WEB erişim durumunu geri beslemek için kullanılan yerleşik HTTP_STUB_STATUS durum istatistik modülüne sahiptir. Yapılandırma

Parametreleri derlerken, bu modülü etkinleştirmek için with-http_stub_stastus_module ekleyebilirsiniz. Nginx'in durum istatistikleri işlevini kullanmak için, yerleşik modülü etkinleştirmenin yanı sıra, nginx.conf dosyasını değiştirmeniz, erişim konumunu belirtmeniz ve stub_status yapılandırmasını açmanız gerekir. Http {} yapılandırmasının sunucu {} alt yapılandırmasına aşağıdaki yapılandırma öğelerini ekleyin:

# vim /usr/local/nginx/conf/nginx.conf

konum / durum {

stub_status açık;

erişim_ günlüğü kapalı;

auth_basic "Nginx durumu";

auth_basic_user_file /usr/local/nginx/.htpasswd;

}

Not: konum / durum // / tongji içeren herhangi bir sorguyla eşleşir

stub_statuson // Durum istatistikleri işlevini açın

Access_logoff // Bu konumda günlük kaydını kapat

Nginx, bir parola dosyası oluşturmak için Apache'nin htpasswd'sini kullanarak dizine parola doğrulaması eklemeyi destekler

htpasswd-c / usr / local / nginx / .htpasswd kullanıcı adı

Değiştirilen nginx.conf dosyasını kaydedin ve değişikliğin etkili olması için nginx hizmetini yeniden başlatın.

Yeni yapılandırma yürürlüğe girdikten sonra, durum istatistiklerini görmek için tarayıcıda Nginx sunucusunun / tongji web sitesi konumunu (http: // web sunucusu IP / durumu) ziyaret edin

Yukarıdaki şekilde gösterildiği gibi: "Etkin bağlantılar", mevcut etkin bağlantı sayısını temsil eder ve "sunucu, işlenen istekleri kabul eder", işlenen bağlantı bilgilerini temsil eder.Üç sayı sırasıyla işlenen bağlantıların sayısını, başarılı TCP el sıkışmalarının sayısını ve işlenen bağlantıların sayısını temsil eder. İstek sayısı.

İstemci erişim kontrolü:

Not: kurallara izin ver, kuralları reddet; kuralların yürütülmesi yukarıdan aşağıya doğru yürütülür.Belirli bir kural eşleştikten sonra,

Diğer kuralları kontrol edin.

2) Sanal ana bilgisayar:

Bir sanal ana sunucu oluşturmak için Nginx kullanıldığında, her sanal WEB sitesinin bağımsız bir "sunucu {}" yapılandırma bölümü vardır.

Dinleme IP adresi ve bağlantı noktası numarası ayrı ayrı belirtilebilir ve tabii ki web sitesi adı da farklıdır.

Örneğin: www.AAA.com ve www.BBB.com olmak üzere iki site oluşturmak için

İki sanal WEB ana bilgisayarı için kök dizinler oluşturun ve ana sayfayı test etmeye hazırlanın

# mkdir -p / var / www / AAA

# echo "www.AAA.com" > /var/www/AAA/index.html

# mkdir -p / var / www / BBB

# echo "www.BBB.com" > /var/www/BBB/index.html

Nginx.conf yapılandırma dosyasını ayarlayın - alan adı sanal konağı

İki WEB sitesine karşılık gelen iki "sunucu {}" alanını yapılandırın, kendi web sitesi adını, dinleme adresini ve web sitesini belirtin

Kök dizin, erişim günlüğü ve diğer bilgiler ve ardından yapılandırmayı yeniden yükleyin

server {

80 dinle;

server_name www.AAA.com AAA.com;

karakter kümesi utf-8;

access_log günlükleri / AAA.access.log main;

yer / {

kök / var / siteler / AAA;

index index.html index.php;

}

}

server {

80 dinle;

sunucu_adı www.BBB.com BBB.com;

karakter kümesi utf-8;

access_log günlükleri / BBB.access.log main;

yer / {

kök / var / siteler / BBB;

index index.html index.php;

}

}

Ölçek:

Sırasıyla www.AAA.com ve www.BBB.com üzerinden iki WEB sitesini ziyaret etmek için bir tarayıcı kullanın (alan adı çözümlemesine dikkat edin.)

Sırasıyla www.AAA.com ve www.BBB.com üzerinden iki WEB sitesini ziyaret etmek için bir tarayıcı kullanın (alan adı çözümlemesine dikkat edin.)

Yeniden yazdırma adresi:

Eser sahibi: wenzhongxiang

Milli Eğitim Bakanlığı: Ulusal Ücretsiz Tıp Öğrencisi Programı 6.483 kişiye eğitim verecek İl talep planları listesi yayınlandı!
önceki
Birbirinden yabancı olmaya kadar 419 izleyici, aşk gerçeğiyle yüzleşmek için "Bir Gölge Gibi" filmini dört gözle bekliyor.
Sonraki
Yeni Audi A8 casus fotoğrafları ortaya çıktı, dünya galası 11 Temmuz
Hırsızlık alâmeti çok BUG, ortadaki bekar adam para çalıyor ve Kalmar'a akıyor ve hızla sürümün yeni favorisi oluyor
Nginx + tomcat, oturum paylaşımını gerçekleştirir
JAC Volkswagen'in işbirliğinden şüpheleniliyor! Efsanevi sıfır yakıt tüketimi küçük araba?
Li Shaohong'un "Ma Ge is a City" 17 Mayıs'ta! Yan Geling "sertifikalı" Bai Baihe'nin oyunculuk "dahisi"
Ani tanıma: Diyalog ve etkileşim gelecekteki seyahatlere yardımcı olur ve "kullanıcılar etrafında" iş dünyasında yeni bir bölüm açar.
Güney Kore bir kadın ligine ev sahipliği yapıyor ve katılım koşulları çok rahat! Netizen: Çin Kadınlar Ligi nerede?
Nginx'i Basit Bir Şekilde Öğrenin
Japon ve Amerikan kültürleri böyle çarpışabilir mi? ! Visvim'in New York mağazasının içi ne kadar zarif?
Yeni Toyota Prado stil görünümü: ızgara bir Audi Q7'ye benziyor mu?
"Yolsuzlukla Mücadele Fırtınası 4" 400 milyon gişe rekorunu kırdı ve aynı sahnede şampiyon, hapsedilmiş, yolsuzlukla mücadele sergisi klasik Hong Kong hayranı
Nginx web servis optimizasyonu
To Top