NGINX ile İsim Tabanlı ve IP Tabanlı Sanal Ana Bilgisayarlar (Sunucu Blokları) Nasıl Kurulur


Geliştirilip kullanıma sunulmasından bu yana nispeten kısa bir süre içinde (10 yıldan biraz fazla) Nginx, yüksek performansı ve düşük bellek kullanımı nedeniyle web sunucuları arasında sürekli ve istikrarlı bir büyüme yaşadı.

Nginx Ücretsiz ve Açık Kaynak Yazılım olduğundan, yalnızca Linux ve *nix sunucularında değil, aynı zamanda Microsoft Windows'ta da dünya çapında binlerce web sunucusu yöneticisi tarafından benimsenmiştir.

Kaçırmayın: Apache Adı Tabanlı ve IP Tabanlı Sanal Barındırma

Apache'e alışkın olanlarımız için, Nginx biraz dik bir öğrenme eğrisine sahip olabilir (en azından benim durumum öyleydi), ancak bir çift oluşturduğunuzda kesinlikle karşılığını verir sitelerin trafik ve kaynak kullanım istatistiklerini görmeye başlayın.

Bu makalede, CentOS/RHEL'de isim tabanlı ve ip tabanlı sanal barındırma kurulumu için Nginx'in nasıl kullanılacağını açıklayacağız. Ubuntu 15.04 ve yan ürünlerinden başlayarak 7 sunucu ve Debian 8 ve türevleri.

Bu makale için test senaryomuz aşağıdaki gibidir:

  1. İşletim Sistemi: Debian 8 Jessie sunucusu [IP 192.168.0.25]
  2. Ağ Geçidi: Yönlendirici [IP 192.168.0.1]
  3. Web Sunucusu: Nginx 1.6.2-5
  4. Sahte Etki Alanları: www.tecmintlovesnginx.com ve www.nginxmeanspower.com.

Nginx Web Sunucusunun Kurulumu

Henüz yapmadıysanız, devam etmeden önce lütfen Nginx'i yükleyin. Başlamak için yardıma ihtiyacınız varsa, bu sitede nginx için hızlı bir arama yaparsanız, bu konuyla ilgili birkaç makale bulacaksınız. Bu sayfanın üst kısmındaki büyüteç simgesine tıklayın ve nginx anahtar kelimesini arayın. Bu sitedeki makaleleri nasıl arayacağınızı bilmiyorsanız endişelenmeyin, burada nginx makalelerine bağlantılar ekledik, sadece göz atın ve ilgili Linux dağıtımlarınıza göre yükleyin.

  1. Nginx'i RHEL/CentOS 7'deki Kaynaklardan Kurun ve Derleyin
  2. Nginx Web Sunucusunu Debian 8'e yükleyin
  3. Fedora 23'te Nginx'i MariaDB ve PHP/PHP-FPM ile yükleyin
  4. Nginx Web Sunucusunu Ubuntu 15.10 Sunucusuna/Masaüstüne Kurun
  5. Nginx Web Sitesi Dizinlerini Parolayla Koruyun

O halde bu eğitimin geri kalanıyla devam etmeye hazırlanın.

Nginx'te İsme Dayalı Sanal Konaklar Oluşturma

Zaten bildiğinizden eminim, sanal ana bilgisayar, Nginx tarafından tek bir bulut VPS veya fiziksel sunucuda sunulan bir web sitesidir. Ancak, Nginx belgelerinde bunun yerine "sunucu blokları" terimini bulacaksınız, ancak bunlar temelde farklı adlarla anılan aynı şeydir.

Sanal ana bilgisayarlar kurmanın ilk adımı, ana yapılandırma dosyasında (/etc/nginx/nginx.conf ) bir veya daha fazla sunucu bloğu oluşturmaktır (bizim durumumuzda her sahte alan için bir tane olmak üzere iki tane oluşturacağız). ) veya /etc/nginx/sites-available içinde.

Bu dizindeki (sites-available) yapılandırma dosyalarının adı istediğiniz şekilde ayarlanabilse de, alan adlarının adını kullanmak iyi bir fikirdir; ayrıca, biz de Bunların yapılandırma dosyaları olduğunu belirtmek için .conf uzantısını kullanın.

Bu sunucu blokları nispeten karmaşık olabilir ancak temel hallerinde aşağıdaki içerikten oluşurlar:

/etc/nginx/sites-available/tecmintlovesnginx.com.conf'da:

server {  
    listen       80;  
    server_name  tecmintlovesnginx.com www.tecmintlovesnginx.com;
    access_log  /var/www/logs/tecmintlovesnginx.access.log;  
    error_log  /var/www/logs/tecmintlovesnginx.error.log error; 
        root   /var/www/tecmintlovesnginx.com/public_html;  
        index  index.html index.htm;  
}

/etc/nginx/sites-available/nginxmeanspower.com.conf'da:

server {  
    listen       80;  
    server_name  nginxmeanspower.com www.nginxmeanspower.com;
    access_log  /var/www/logs/nginxmeanspower.access.log;  
    error_log  /var/www/logs/nginxmeanspower.error.log error;
    root   /var/www/nginxmeanspower.com/public_html;  
    index  index.html index.htm;  
}

Sanal ana makinelerinizi kurmaya başlamak için yukarıdaki blokları kullanabilir veya /etc/nginx/sites-available/default (Debian) adresinden temel iskelete sahip dosyalar oluşturabilirsiniz. >) veya /etc/nginx/nginx.conf.default (CentOS).

Kopyalandıktan sonra izinlerini ve sahipliğini değiştirin:

chmod 660  /etc/nginx/sites-available/tecmintlovesnginx.com.conf
chmod 660  /etc/nginx/sites-available/nginxmeanspower.com.conf

Debian ve Türevler

chgrp www-data  /etc/nginx/sites-available/tecmintlovesnginx.com.conf
chgrp www-data  /etc/nginx/sites-available/nginxmeanspower.com.conf

CentOS ve RHEL

chgrp nginx  /etc/nginx/sites-available/tecmintlovesnginx.com.conf
chgrp nginx  /etc/nginx/sites-available/nginxmeanspower.com.conf

İşiniz bittiğinde, karışıklığı veya çakışmaları önlemek için örnek dosyayı silmeli veya başka bir adla yeniden adlandırmalısınız.

Ayrıca günlükler için bir dizin (/var/www/logs) oluşturmanız ve Nginx kullanıcısına (nginx veya www-data) vermeniz gerekeceğini lütfen unutmayın. , CentOS veya Debian çalıştırıyor olmanıza bağlı olarak) okuma ve yazma izinleri:

mkdir /var/www/logs
chmod -R 660 /var/www/logs
chgrp <nginx user> /var/www/logs

Sanal ana bilgisayarların artık sitelerin etkin olduğu dizinde bu dosyaya bir sembolik bağlantı oluşturularak etkinleştirilmesi gerekir:

ln -s /etc/nginx/sites-available/tecmintlovesnginx.com.conf /etc/nginx/sites-enabled/tecmintlovesnginx.com.conf
ln -s /etc/nginx/sites-available/nginxmeanspower.com.conf /etc/nginx/sites-enabled/nginxmeanspower.com.conf

Daha sonra, sanal ana bilgisayarların her biri için /var/www//public_html içinde index.html adlı örnek bir html dosyası oluşturun ( ile değiştirin) name> gerektiği gibi). Aşağıdaki kodu gerektiği gibi değiştirin:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Tecmint loves Nginx</title>
  </head>
  <body>
  <h1>Tecmint loves Nginx!</h1>
  </body>
</html>

Son olarak Nginx yapılandırmasını test edin ve web sunucusunu başlatın. Yapılandırmada herhangi bir hata varsa bunları düzeltmeniz istenecektir:

nginx -t && systemctl start nginx

ve temel ad çözümleme stratejisi olarak aşağıdaki girişleri yerel makinenizdeki /etc/hosts dosyanıza ekleyin:

192.168.0.25 tecmintlovesnginx.com
192.168.0.25 nginxmeanspower.com

Ardından bir web tarayıcısı başlatın ve yukarıda listelenen URL'lere gidin:

Nginx'e daha fazla sanal ana bilgisayar eklemek için yukarıda özetlenen adımları gerektiği kadar tekrarlayın.

Nginx'te IP tabanlı Sanal Konaklar

Tüm ana bilgisayarlara aynı IP adresi üzerinden erişilebilen ada dayalı sanal ana makinelerin aksine, IP tabanlı sanal ana bilgisayarlar farklı bir IP:bağlantı noktası gerektirir > her birinin kombinasyonu.

Bu, web sunucusunun, isteğin alındığı IP adresine ve bağlantı noktasına bağlı olarak farklı siteleri döndürmesine olanak tanır. Ad tabanlı sanal ana bilgisayarlar bize bir IP adresi ve bağlantı noktası paylaşma avantajı sağladığından, bunlar genel amaçlı web sunucuları için standarttır ve yüklü Nginx sürümünüz Sunucu Adı Gösterimini desteklemediği sürece tercih edilen kurulum olmalıdır. (SNI), bunun nedeni GERÇEKTEN eski bir sürüm olması veya –with-http_ssl_module derleme seçeneği olmadan derlenmiş olmasıdır.

Eğer,

nginx -V

aşağıda vurgulanan seçenekleri döndürmez:

Orijinal kurulum yönteminize bağlı olarak Nginx sürümünüzü güncellemeniz veya yeniden derlemeniz gerekecektir. Nginx'i derlemek için aşağıdaki makaleyi izleyin:

  1. Nginx'i RHEL/CentOS 7'deki Kaynaklardan Kurun ve Derleyin

Hazır olduğumuzu varsayarsak, IP tabanlı sanal ana bilgisayarlar için başka bir ön koşulun da, bunları farklı ağ arayüzlerine atayarak veya sanal ağların kullanımı yoluyla ayrı IP'lerin kullanılabilirliği olduğunu not etmemiz gerekir. IP'ler (IP takma adı olarak da bilinir).

Debian'da IP takma adı oluşturmak için (eth0 kullandığınızı varsayarsak), /etc/network/interfaces dosyasını aşağıdaki gibi düzenleyin:

Debian ve Türevler

auto eth0:1
iface eth0:1 inet static
        address 192.168.0.25
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
auto eth0:2
iface eth0:2 inet static
        address 192.168.0.26
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1

Yukarıdaki örnekte eth0: eth0:1 (192.168.0.25) ve eth0:2'den (192.168.0.26) iki sanal NIC oluşturuyoruz.

CentOS ve RHEL

CentOS'ta /etc/sysconfig/network-scripts/ifcfg-enp0s3 dosyasını ifcfg-enp0s3:1 olarak yeniden adlandırın ve ifcfg-enp0s3:2 olarak bir kopya oluşturun ve ardından sırasıyla aşağıdaki satırları değiştirin:

DEVICE="enp0s3:1"
IPADDR=192.168.0.25

Ve

DEVICE="enp0s3:2"
IPADDR=192.168.0.26

İşiniz bittiğinde ağ hizmetini yeniden başlatın:

systemctl restart networking

Daha sonra, bu makalede daha önce tanımlanan sunucu bloklarında aşağıdaki değişiklikleri yapın:

/etc/nginx/sites-available/tecmintlovesnginx.com.conf'da:

listen 192.168.0.25:80

/etc/nginx/sites-available/nginxmeanspower.com.conf'da:

listen 192.168.0.26:80

Son olarak değişikliklerin etkili olması için Nginx'i yeniden başlatın.

systemctl restart nginx

ve yerel /etc/hosts dosyanızı buna göre güncellemeyi unutmayın:

192.168.0.25 tecmintlovesnginx.com
192.168.0.26 nginxmeanspower.com

Bu nedenle, 80 bağlantı noktasında 192.168.0.25 ve 192.168.0.26'ye yapılan her istek tecmintlovesnginx.com'u döndürecektir ve nginxmeanspower.com, sırasıyla:

Yukarıdaki görsellerde görebileceğiniz gibi artık sunucunuzdaki tek NIC'i iki farklı IP takma adı ile kullanan iki IP tabanlı sanal ana makineniz var.

Özet

Bu eğitimde Nginx'te hem isim tabanlı hem de IP tabanlı sanal ana makinelerin nasıl kurulacağını açıkladık. Muhtemelen ilk seçeneği kullanmak isteyecek olsanız da, ihtiyacınız olması durumunda diğer seçeneğin de mevcut olduğunu bilmek önemlidir; bu kararı, bu kılavuzda özetlenen gerçekleri değerlendirdikten sonra verdiğinizden emin olun.

Ek olarak, sunucu blokları oluştururken (işte burada - şu anda Nginx dilinde konuşuyoruz) ve bunları yapılandırırken Nginx belgelerine sık sık başvurmak yararlı olacağı için yer imlerine eklemek isteyebilirsiniz. Bu olağanüstü web sunucusunu yapılandırmak ve ayarlamak için mevcut olan tüm seçeneklere inanmayacaksınız.

Her zaman olduğu gibi, bu makaleyle ilgili herhangi bir sorunuz veya yorumunuz varsa aşağıdaki formu kullanarak bize yazmaktan çekinmeyin. Sizden haber almayı sabırsızlıkla bekliyoruz ve bu kılavuzla ilgili geri bildirimlerinizi memnuniyetle karşılıyoruz.