Genellikle Nginx sanal ana bilgisayarı olarak adlandırılan Sunucu Blokları Nginx web sunucusunun bir sunucuda birden çok web sitesini barındırmanıza izin veren bir özelliğidir. Her etki alanı için bir sunucu kurup yapılandırmanın aksine, birden fazla web sitesini tek bir makinede barındırmak hem zamandan hem de paradan tasarruf sağlar.
Etki alanları izole ve bağımsızdır, her birinin ayrı bir özelliği vardır:
- Site belgeleri için dizin
- Web sitesi güvenlik politikası
- SSL sertifikası
Bu öğreticide, Nginx sunucu bloklarını nasıl kuracağınızı ve CentOS 7’de yerel bir ana bilgisayar dosyasını nasıl yapılandıracağınızı öğrenin.
Önkoşullar
- Bir CentOS kendi kendini yöneten sunucu veya VM
- Nginx sistemde yüklü
- olan bir kullanıcı sudo ayrıcalıklar
CentOS’ta Sanal Konak / Sunucu Blokları Kurulumu
1. Adım: Dizin Yapısı Oluşturun
Nginx sanal ana bilgisayarı, tek bir makinede birden çok web sitesini besleyebilir. Her web sitesinin ayrı site belgeleri olduğundan, verileri depolamak için ayrı dizin yapıları oluşturmanız gerekir.
Her sunucu bloğu, belge kökünün içinde bir dizine sahip olmalıdır ( /var/www dizin).
Bu kılavuz, iki sunucu için nasıl sanal konak oluşturacağınızı gösterir (web sitesi1.com Ve web sitesi2.com). Yapılandırmayı ayarlayabilir ve ilgili kaynaklarınız için uyarlayabilirsiniz.
1. İçinde bir klasör oluşturmak için aşağıdaki komutu kullanarak başlayın. /var/www şu komutla dizin:
sudo mkdir -p /var/www/website1.com/html
2. Ardından, şunu yazarak ikinci web sitesi için bir tane oluşturun:
sudo mkdir -p /var/www/website2.com/html
3. Ardından, diğer kullanıcıların dizinlere dosya ekleyebilmesi, silebilmesi veya değiştirebilmesi için dosyaların sahipliğini değiştirin. Sonuç olarak, her iki dizin de oturum açtığınız kullanıcıya ait olacaktır.
4. Dosya sahipliğini değiştir chown komutunu kullanın:
sudo chown -R $USER:$USER /var/www/website1.com/html
5. Aşağıdakileri yazarak ikinci web dizini için işlemi tekrarlayın (etki alanı adını değiştirdiğinizden emin olun):
sudo chown -R $USER:$USER /var/www/website2.com/html
6. Son olarak, hibe okuma izni kullanarak /var/www dizini içindeki tüm dosyalara chmod
emretmek:
sudo chmod -R 755 /var/www
2. Adım: Sanal Konak için Demo Sayfası Oluşturun
Sonraki adım, Nginx sunucu bloklarında barındırılan web sitelerinde görüntülemek istediğiniz içeriği oluşturmaktır. Süreci göstermenin en kolay yolu, bir index.html Daha önce bahsedilen iki etki alanı için sayfa.
1. İlk web sitesi için index.html dosyasını oluşturmak ve açmak için seçtiğiniz bir Linux metin düzenleyicisini kullanın. Bu örnekte kullandığımız Vi (ancak Nano veya başka herhangi bir şey de iyi çalışıyor):
vi /var/www/website1.com/html/index.html
2. Boş bir Vi sayfası açıldığında, Ben (eklemek için) ve aşağıdaki içeriği ekleyin:
<html>
<head>
<title>Welcome to our first website!</title>
<head>
<body>
<h1>Great work! You have created the website1.com server block.</h1>
<body>
<html>
3. Ardından, ilk dosyayı kaydedin ve çıkın.
4. İkinci etki alanı için adımları tekrarlayın. Ancak, dosya adını değiştirmeyi unutmayın. web sitesi2:
vi /var/www/website2.com/html/index.html
Ayrıca, önceki adıma benzer içerik ekleyin, ancak ayrıntıları ikinci alanla eşleşecek şekilde değiştirin:
<html>
<head>
<title>Welcome to our second website!</title>
<head>
<body>
<h1>Great work! You have created the website2.com server block.</h1>
<body>
<html>
Yine dosyayı kaydedip çıkın.
3. Adım: Sunucu Blok Dosyaları İçin Ortam Ayarlayın
İki etki alanı için sanal ana bilgisayarlar kurmadan önce iki dizin oluşturmamız gerekiyor:
- Kullanılabilir siteler sunucu bloklarını depolamak için dizin.
- Siteler etkin Nginx’e hangi bağlantıların yayınlanacağını ve hangi blokların ziyaretçilerle içerik paylaştığını söyleyecek dizin.
1. mkdir
komutları kullanarak yeni dizinler oluşturmak için komut:
sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled
2. Ardından, Nginx yapılandırma dosyasını açın ve sitelerin etkinleştirildiği dizini ekleyerek dosyayı değiştirin:
sudo vi /etc/nginx/nginx.conf
3. http bloğunun içine aşağıdaki iki satırı ekleyin:
include /etc/nginx/sites-enabled/*.conf
server_names_hash_bucket_size 64;
İlk satır, Nginx’e sitelerin etkinleştirildiği dizini kontrol etmesini söylerken, ikincisi, birden çok alan adını incelemek için ayrılan belleği artırır.
4. Dosyayı kaydedin ve çıkın.
5. Sözdiziminin doğru olduğundan emin olmak için herhangi bir değişiklik yaptıktan sonra Nginx yapılandırma dosyasını doğrulayın. Bunu yapmak, gelecekte olası hataların önlenmesine yardımcı olabilir.
Dosyayı aşağıdaki komutla test edin:
sudo nginx --t
Eğer sözdizimi tamamçıktı, aşağıdaki görüntüde olduğu gibi testin başarılı olduğunu söyler.
Ancak, sözdiziminde bir sorun bulursa, çıktı hatanın nerede olduğunu ve nasıl geri dönüp düzeltileceğini belirtir.
4. Adım: Sunucu Blok Dosyaları Oluşturun
Nginx web sunucusu paketi, default.conf adı altında varsayılan bir sunucu bloğu ile birlikte gelir. Her etki alanı için sunucu blokları oluşturmanız gerektiğinden, bunu yapmanın en kolay yolu mevcut şablonu kopyalamak ve özellikleri değiştirmek olacaktır.
1. İlk web sitesi için bir sanal konak oluşturun. cp
dosyanın tam bir kopyasını oluşturmak için komut:
sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/website1.com.conf
2. Klonlanan dosyayı aşağıdaki komutla bir metin düzenleyicide açın:
sudo vi /etc/nginx/sites-available/website1.com.conf
Dosyanın içeriği aşağıdaki görüntüdeki gibi görünmelidir:
3. Dosyada düzenlemeniz gereken üç (3) satır vardır:
- bu sunucu adı ilk web sitenizin alan adına karşılık gelmelidir. Adresi ile ve olmadan eklediğinizden emin olun. www. önek. Bunu yaparak sunucu, ziyaretçilerden gelen her iki istek türünü de tanıyacak ve onları aynı içeriğe yönlendirecektir.
Örneğimizde, sunucu_adı bu nedenle şöyle olacaktır:
server name website1.com www.website1.com;
- Şu komutu kullanarak kök dizini website1.com ile çakışacak şekilde değiştirin:
root /var/www/website1.com/html;
- Ekle try_files sunucunun izlenemeyen dosya ve dizinler için istekler aldığı durumlar için 404 hatasıyla komut:
try_files $uri $uri/ =404;
Çıkmadan önce dosyayı kaydettiğinizden emin olun. Tüm değişiklikler yapıldıktan sonra, yapılandırma dosyası aşağıdaki gibi görünecektir:
4. Ayrıntıları değiştirerek ikinci sunucu bloğu için işlemi tekrarlayın. web sitesi2.com.
Bu, varsayılan yapılandırma dosyasının şu komutla kopyalanmasını içerir:
sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/website2.com.conf
Ardından bir metin düzenleyiciyle bir dosya açarak:
sudo vi /etc/nginx/sites-available/website2.com.conf
İçeriği aşağıdaki şekilde düzenleyin:
server name website2.com www.website2.com;
try_files $uri $uri/ =404;
root /var/www/website2.com/html;
5. Adım: Sunucu Blok Dosyalarını Etkinleştirin
Sanal konak dosyalarını etkinleştirmek için, sitelerin etkinleştirildiği dizinlerde şu komutlarla sembolik bağlantılar oluşturun:
sudo ln -s /etc/nginx/sites-available/website1.com.conf /etc/nginx/sites-enabled/website1.com.conf
sudo ln -s /etc/nginx/sites-available/website2.com.conf /etc/nginx/sites-enabled/website2.com.conf
Değişikliklerin gerçekleşmesi için Nginx’i yeniden başlattığınızdan emin olun:
sudo systemctl restart nginx
6. Adım: Ana Bilgisayar Dosyasını Yapılandırın
Çalışan alanlar yerine örnek etki alanlarını kullandıysanız, ana bilgisayarlar istekleri oluşturduğunuz sanal özel sunucuya (VPS) yönlendirmek için dosya.
1. Ana bilgisayar dosyasını bir metin düzenleyicide açın:
sudo vi /etc/hosts
2. VPS IP adresini belirtirken mevcut içeriğin altındaki aşağıdaki iki satırı düzenleyin:
ip_address website1.com
ip_address website2.com
3. Dosyayı kaydedin ve çıkın.
7. Adım: Sunucu Blokları Kurulumunu Doğrulayın
Sunucu bloklarının kurulumunu doğrulamak için, sunucu bloklarında barındırmak üzere oluşturduğunuz web sitelerine gidin.
Bir tarayıcı açın ve ilk etki alanının URL’sini yazın:
www.website1.com
www.website2.com
Adım 2’de demo sayfası için oluşturulan içeriği görmelisiniz.
Çözüm
Bu makaleyi okuduktan sonra, CentOS’ta birden çok etki alanını barındırmak için Nginx sunucu bloklarını kurmanın ve ayarlamanın temel ilkelerini anlamalısınız.
Nginx’in kullanımı kolay olmasına rağmen sınırlı sayıda özelliği vardır. Web sunucunuzdan daha fazlasına ihtiyacınız varsa, Apache’yi CentOS 7’ye kurmayı düşünebilirsiniz.