Jak konfigurować wirtualne hosty oparte na nazwach i IP (bloki serwera) z Nginx

Jak konfigurować wirtualne hosty oparte na nazwach i IP (bloki serwera) z Nginx

W stosunkowo krótkim czasie od czasu jego opracowania i udostępniania (nieco ponad 10 lat), Nginx doświadczył trwałego i stałego wzrostu wśród serwerów internetowych ze względu na wysokie wyniki i niskie zużycie pamięci.

Nazwa NIginx i wirtualne hosting oparty na IP

Od Nginx jest bezpłatne i oprogramowanie typu open source, zostało przyjęte przez tysiące administratorów serwerów WWW na całym świecie, nie tylko na serwerach Linux i *Nix, ale także w Microsoft Windows.

Nie przegap: Hosting wirtualny oparty na nazwach Apache i IP

Dla tych z nas najbardziej przyzwyczajonych Apache, Nginx Może mieć nieco stromą krzywą uczenia się (przynajmniej taka była moja sprawa), ale z pewnością opłaca.

W tym artykule wyjaśnimy, jak używać Nginx do konfiguracji Nazwa I oparte na IP Wirtualny hosting w Centos/RHEL 7 serwery i Debian 8 i pochodne, zaczynając od Ubuntu 15.04 i jego spin-off.

Nasz scenariusz testowy tego artykułu jest następujący:

  1. System operacyjny: Debian 8 Jessie Server [IP 192.168.0.25]
  2. Wejście: Router [IP 192.168.0.1]
  3. Serwer internetowy: Nginx 1.6.2-5
  4. Domnomeny: www.Tecmintlovesnginx.com i www.Nginxmeanspower.com.

Instalowanie serwera WWW Nginx

Jeśli jeszcze tego nie zrobiłeś, zainstaluj Nginx przed kontynuowaniem. Jeśli potrzebujesz pomocy, aby rozpocząć, szybkie wyszukiwanie Nginx na tej stronie zwróci kilka artykułów na ten temat. Kliknij ikonę szkła powiększającego u góry tej strony i wyszukaj słowo kluczowe nginx. Jeśli nie wiesz, jak wyszukiwać artykuły na tej stronie, nie martw się tutaj, dodaliśmy linki do artykułów Nginx, po prostu przejdź i zainstaluj je zgodnie z odpowiednimi dystrybucjami Linux.

  1. Zainstaluj i skompiluj nginx ze źródeł w RHEL/CENTOS 7
  2. Zainstaluj serwer WWW Nginx na Debian 8
  3. Zainstaluj Nginx z MariaDB i PHP/PHP-FPM na Fedorze 23
  4. Zainstaluj serwer WWW Nginx na Ubuntu 15.10 serwer/komputer stacjonarny
  5. Hasło chronić katalogi witryny nginx

Następnie przygotuj się do kontynuowania reszty tego samouczka.

Tworzenie wirtualnych hostów opartych na nazwach w Nginx

Jak jestem pewien, że już wiesz, wirtualny host to strona internetowa obsługiwana przez Nginx w pojedynczym VPS w chmurze lub serwerze fizycznym. Jednak w dokumentach Nginx znajdziesz termin „Bloki serwerowe” Zamiast tego, ale są to w zasadzie to samo nazywane różnymi nazwami.

Pierwszym krokiem do skonfigurowania wirtualnych hostów jest utworzenie jednego lub więcej bloków serwerów (w naszym przypadku utworzymy dwa, jeden dla każdej manekinu) w głównym pliku konfiguracyjnym (/etc/nginx/nginx.conf) lub w środku /etc/nginx/witryny-dostępne.

Chociaż nazwa plików konfiguracyjnych w tym katalogu (Witryny) można ustawić na wszystko, co chcesz, warto użyć nazwy domen, a ponadto postanowiliśmy dodać .conf rozszerzenie, aby wskazać, że są to pliki konfiguracyjne.

Te bloki serwerowe mogą być stosunkowo złożone, ale w ich podstawowej formie składają się z następującej treści:

W /etc/nginx/witryny-dostępne/tecminlovesnginx.com.conf:

serwer Słuchaj 80; Server_name TecmintLovesnginx.com www.Tecmintlovesnginx.com; access_log/var/www/logs/tecMIntLovesnginx.dostęp.dziennik; error_log/var/www/logs/tecMIntLovesnginx.błąd.Błąd dziennika; root/var/www/tecmintlovesnginx.com/public_html; indeks indeksu.Indeks HTML.HTM;  

W /etc/nginx/witryny-dostępna/nginxmeanspower.com.conf:

serwer Słuchaj 80; Server_name Nginxmeanspower.com www.Nginxmeanspower.com; access_log/var/www/logs/nginxmeanspower.dostęp.dziennik; error_log/var/www/logs/nginxmeanspower.błąd.Błąd dziennika; root/var/www/nginxmeanspower.com/public_html; indeks indeksu.Indeks HTML.HTM;  

Możesz użyć powyższych bloków, aby rozpocząć konfigurowanie wirtualnych hostów lub możesz tworzyć pliki z podstawowym szkieletem z /etc/nginx/witryny-dostępny/domyślny (Debian) Lub /etc/nginx/nginx.conf.domyślny (Centos).

Po skopiowaniu zmień ich uprawnienia i własność:

# CHMOD 660/etc/nginx/Sites-dostępny/tecmintlovesnginx.com.CONF # CHMOD 660/ETC/Nginx/Sites-dostępny/nginxmeanspower.com.conf 

Debian i pochodne

# CHGRP www-data/etc/nginx/Sites-dostępny/tecmintlovesnginx.com.Conf # CHGRP www-data/etc/nginx/sites-dostępny/nginxmeanspower.com.conf 

Centos i Rhel

# CHGRP nginx/etc/nginx/witryny-dostępny/tecmintlovesnginx.com.Conf # CHGRP nginx/etc/nginx/witryny-dostępny/nginxmeanspower.com.conf 

Po zakończeniu powinieneś usunąć przykładowy plik lub zmienić go na coś innego, aby uniknąć zamieszania lub konfliktów.

Należy pamiętać, że będziesz musiał również utworzyć katalog dzienników (/var/www/logs) i daj użytkownikowi Nginx (nginx Lub www-data, W zależności od tego, czy prowadzisz centos, czy debian) Przeczytaj i pisz na tym uprawnienia:

# mkdir/var/www/logs # chmod -r 660/var/www/logs # chgrp/var/www/logs 

Wirtualne hosty muszą być teraz włączone, tworząc symbolizny do tego pliku w katalogu obsługującym witryny:

# ln -s/etc/nginx/witryny -dostępny/tecmintlovesnginx.com.conf/etc/nginx/witryny-obserwowane/tecMIntlovesnginx.com.conf # ln -s/etc/nginx/witryny -dostępny/nginxmeanspower.com.conf/etc/nginx/witryny-obsługujący/nginxmeanspower.com.conf 

Następnie utwórz przykładowy plik HTML o nazwie indeks.html wewnątrz /var/www // public_html Dla każdego z wirtualnych hostów (wymień w razie potrzeby). W razie potrzeby zmodyfikuj następujący kod:

    Tecmint uwielbia Nginx   

Tecmint uwielbia Nginx!

Na koniec przetestuj konfigurację Nginx i uruchom serwer WWW. Jeśli występują jakieś błędy w konfiguracji, zostaniesz poproszony o ich poprawienie:

# nginx -t && systemctl start nginx 
Sprawdź konfigurację Nginx

i dodaj następujące wpisy do swojego /etc/hosts Plik w komputerze lokalnym jako podstawowa strategia rozwiązywania nazw:

192.168.0.25 Tecmintlovesnginx.com 192.168.0.25 Nginxmeanspower.com 

Następnie uruchom przeglądarkę internetową i przejdź do adresów URL wymienionych powyżej:

Sprawdź wirtualne hosty oparte na nazwach Nginx

Aby dodać więcej wirtualnych hostów w Nginx, po prostu powtórz kroki przedstawione powyżej tyle razy, ile potrzeba.

Wirtualne hosty oparte na IP w Nginx

W przeciwieństwie do Nazwa Wirtualne hosty, w których wszystkie hosty są dostępne za pomocą tego samego adresu IP, Oparte na IP wirtualne hosty wymagają innego IP: Port Kombinacja każda.

Umożliwia to serwerze WWW zwracanie różnych witryn w zależności od adresu IP i portu, w którym żądanie jest odbierane. Ponieważ nazywane wirtualne hosty dają nam przewagę dzielenia się adresem IP i portem, są one standardem dla serwerów internetowych ogólnego przeznaczenia i powinny być konfiguracją z wyboru, chyba że zainstalowana wersja Nginx Wskazanie nazwy serwera (Sni), albo dlatego, że jest to naprawdę przestarzała wersja, albo dlatego, że została skompilowana bez -z HTTP_SSL_Module Opcja kompilacji.

Jeśli,

# nginx -v 

Nie zwraca podświetlonych opcji poniżej:

Sprawdź wersję i moduły Nginx

Będziesz musiał zaktualizować swoją wersję Nginx lub ponownie ją skompilować, w zależności od oryginalnej metody instalacji. Aby skompilować Nginx, śledź poniżej artykuł:

  1. Zainstaluj i skompiluj nginx ze źródeł w RHEL/CENTOS 7

Zakładając, że jesteśmy dobrze, musimy zauważyć, że kolejny warunek wstępny Oparte na IP Wirtualne hosty to dostępność oddzielnych adresów IPS - albo przypisując je do odrębnych interfejsów sieciowych, albo za pomocą wirtualnych IPS (znanych również jako aliasing IP).

Wykonać aliasing IP w Debian (Zakładając, że używasz ETH0), edytować /etc/sieci/interfejsy następująco:

Debian i pochodne

Auto ETH0: 1 IFACE ETH0: 1 INET Statyczny adres 192.168.0.25 Mash Network 255.255.255.0 Sieć 192.168.0.0 transmisji 192.168.0.255 Gateway 192.168.0.1 AUTO ETH0: 2 IFACE ETH0: 2 INET STATIC Adres 192.168.0.26 Mash Network 255.255.255.0 Sieć 192.168.0.0 transmisji 192.168.0.255 Gateway 192.168.0.1 

W powyższym przykładzie tworzymy dwa wirtualne karty sieciowe z ETH0: ETH0: 1 (192.168.0.25) i ETH0: 2 (192.168.0.26).

Centos i Rhel

W Centos, zmień nazwę /etc/sysconfig/network-scripts/IFCFG-ENP0S3 Jak IFCFG-ENP0S3: 1 i zrób kopię jako IFCFG-ENP0S3: 2, A potem po prostu zmień odpowiednio następujące wiersze:

Device = "ENP0S3: 1" iPaddr = 192.168.0.25 

I

Device = "ENP0S3: 2" iPaddr = 192.168.0.26 

Po zakończeniu uruchom ponownie usługę sieciową:

# SystemCtl restart sieć 

Następnie dokonaj następujących zmian w blokach serwerów wcześniej zdefiniowanych w tym artykule:

W /etc/nginx/witryny-dostępne/tecminlovesnginx.com.conf:

Posłuchaj 192.168.0.25:80 

W /etc/nginx/witryny-dostępna/nginxmeanspower.com.conf:

Posłuchaj 192.168.0.26:80 

Wreszcie ponownie uruchom Nginx, aby zmiany obowiązują.

# Systemctl restart nginx 

I nie zapomnij zaktualizować lokalnego /etc/hosts odpowiednio:

192.168.0.25 Tecmintlovesnginx.com 192.168.0.26 Nginxmeanspower.com 

Tak więc każda żądanie złożone 192.168.0.25 I 192.168.0.26 na porcie 80 wróci Tecmintlovesnginx.com I Nginxmeanspower.com, odpowiednio:

Sprawdź wirtualny host oparty na IP Nginx

Jak widać na powyższych zdjęciach, masz teraz dwa wirtualne hosty oparte na IP, używając jedynej karty sieciowej na serwerze z dwoma różnymi aliasami IP.

Streszczenie

W tym samouczku wyjaśniliśmy, jak skonfigurować oba Nazwa I Oparte na IP Wirtualne hosty w Nginx. Chociaż prawdopodobnie będziesz chciał skorzystać z pierwszej opcji, ważne jest, aby wiedzieć, że druga opcja jest nadal dostępna, jeśli jej potrzebujesz - po prostu podejmujesz tę decyzję po rozważeniu faktów przedstawionych w tym przewodniku.

Ponadto możesz dodać do zakładek dokumenty Nginx, ponieważ warto je często odwoływać podczas tworzenia bloków serwerów (tam masz - teraz rozmawiamy w języku Nginx) i ich konfigurujemy. Nie uwierzysz we wszystkie opcje, które są dostępne do skonfigurowania i dostrojenia tego znakomitego serwera WWW.

Jak zawsze, nie wahaj się upuścić nam linii za pomocą poniższego formularza, jeśli masz jakieś pytania lub komentarze na temat tego artykułu. Czekamy na wiadomość od Ciebie, a Twoja opinia na temat tego przewodnika jest najbardziej mile widziana.