Wéi Setup Numm-baséiert an IP-baséiert Virtuell Hosts (Server Blocks) mat NGINX


An enger relativ kuerzer Zäit zënter datt et entwéckelt a verfügbar gemaach gouf (e bësse méi wéi 10 Joer), huet Nginx e nohaltege a stännege Wuesstum ënner Webserver erlieft wéinst senger héijer Leeschtung a gerénger Erënnerungsverbrauch.

Zënter Nginx ass gratis an Open Source Software, ass et vun Dausende vu Webserver Administrateuren ronderëm de Globus ugeholl ginn, net nëmmen op Linux an *nix Serveren, awer och a Microsoft Windows.

Fir déi vun eis am meeschte gewinnt mat Apache, kann Nginx eng e bësse steil Léierkurve hunn (op d'mannst dat war mäi Fall) awer et bezilt sech sécher wann Dir e puer Site opgeriicht hutt an de Traffic a Ressourceverbrauchsstatistiken ufänkt ze gesinn.

An dësem Artikel wäerte mir erkläre wéi Dir Nginx benotzt fir Numm-baséiert an IP-baséiert virtuell Hosting an CentOS/RHEL 7 Serveren an Debian 8 an Derivate opzestellen, ugefaange mat Ubuntu 15.04 a seng Spin-Offs.

  1. Betriebssystem: Debian 8 Jessie Server [IP 192.168.0.25]
  2. Gateway: Router [IP 192.168.0.1]
  3. Webserver: Nginx 1.6.2-5
  4. Dummy Domains: www.tecmintlovesnginx.com an www.nginxmeanspower.com.

Nginx Web Server installéieren

Wann Dir dat net scho gemaach hutt, installéiere w.e.g. Nginx ier Dir weider geet. Wann Dir Hëllef braucht fir unzefänken, eng séier Sich no nginx op dësem Site wäert e puer Artikelen iwwer dëst Thema zréckginn. Klickt op d'Lupp Ikon uewen op dëser Säit a sicht no Schlësselwuert nginx. Wann Dir net wësst wéi Dir no Artikelen op dësem Site sicht, maach der keng Suergen hei hu mir Linken op d'nginx Artikelen bäigefüügt, gitt einfach duerch an installéiert et wéi pro Äre jeweilege Linux Verdeelungen.

  1. Installéieren a kompiléieren Nginx vu Quellen an RHEL/CentOS 7
  2. Installéieren Nginx Web Server op Debian 8
  3. Installéiert Nginx mat MariaDB a PHP/PHP-FPM op Fedora 23
  4. Installéieren Nginx Web Server op Ubuntu 15.10 Server/Desktop
  5. Passwuertschutz Nginx Websäit Verzeechnes

Da maacht Iech prett fir mam Rescht vun dësem Tutorial weiderzemaachen.

Erstellt Numm-baséiert Virtuell Hosten am Nginx

Wéi ech sécher sinn, datt Dir scho wësst, ass e virtuelle Host eng Websäit déi vum Nginx an enger eenzeger Wollek VPS oder kierperlechen Server servéiert gëtt. Wéi och ëmmer, an den Nginx-Dokumenter fannt Dir de Begrëff \Serverblocken\ amplaz, awer si sinn am Fong datselwecht mat verschiddenen Nimm genannt.

Den éischte Schrëtt fir virtuell Hosten opzestellen ass een oder méi Serverblocken ze kreéieren (an eisem Fall erstellen mir zwee, een fir all Dummy Domain) an der Haaptkonfiguratiounsdatei (/etc/nginx/nginx.conf) oder bannen /etc /nginx/sites-verfügbar.

Obwuel den Numm vun de Konfiguratiounsdateien an dësem Verzeichnis (Site-verfügbar) ka gesat ginn op wat Dir wëllt, ass et eng gutt Iddi den Numm vun den Domainen ze benotzen, an zousätzlech hu mir gewielt den .conf derbäizesetzen. Extensioun fir unzeginn datt dës Konfiguratiounsdateien sinn.

Dës Serverblocken kënne relativ komplex sinn, awer an hirer Basisform besteet se aus dem folgenden Inhalt:

An /etc/nginx/sites-available/tecmintlovesnginx.com.conf:

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;  
}

An /etc/nginx/sites-available/nginxmeanspower.com.conf:

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;  
}

Dir kënnt déi uewe genannte Blocks benotze fir Är virtuell Hosten opzestellen, oder Dir kënnt d'Dateien mat dem Basisskelett vun /etc/nginx/sites-available/default (Debian) oder /etc/nginx/nginx.conf.default ( CentOS).

Eemol kopéiert, ännert hir Permissiounen a Besëtzer:

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

Wann Dir fäerdeg sidd, sollt Dir d'Probedatei läschen oder se op eppes anescht ëmbenennen fir Duercherneen oder Konflikter ze vermeiden.

Notéiert w.e.g. datt Dir och de Verzeechnes fir d'Logbicher erstellen musst (/var/www/logs) a gitt dem Nginx Benotzer (nginx oder www-data, jee no ob Dir CentOS oder Debian leeft ) liesen a schreiwen Rechter doriwwer:

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

Déi virtuell Hosten mussen elo aktivéiert ginn andeems Dir e Symlink op dës Datei am Site-aktivéierten Verzeechnes erstellt:

# 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

Als nächst, erstellt eng Probe HTML-Datei mam Numm index.html bannent /var/www//public_html fir jiddereng vun den virtuellen Hosten (ersetzt als néideg). Ännert de folgende Code wéi néideg:

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

Endlech, test d'Nginx Konfiguratioun an start de Webserver. Wann et Feeler an der Konfiguratioun gëtt, gitt Dir gefrot fir se ze korrigéieren:

# nginx -t && systemctl start nginx

a füügt déi folgend Entréen an Är /etc/hosts Datei an Ärer lokaler Maschinn als Basis Numm Resolutioun Strategie:

192.168.0.25 tecmintlovesnginx.com
192.168.0.25 nginxmeanspower.com

Dann starten e Webbrowser a gitt op d'URLen hei uewen opgezielt:

Fir méi virtuell Hosten an Nginx ze addéieren, widderhuelen just d'Schrëtt hei uewen sou oft wéi néideg.

IP-baséiert Virtuell Hosten an Nginx

Am Géigesaz zu Numm-baséiert virtuelle Hosten, wou all Hosten iwwer déiselwecht IP Adress zougänglech sinn, erfuerderen IP-baséiert virtuell Hosten all eng aner IP:port Kombinatioun.

Dëst erlaabt de Webserver verschidde Siten zréckzekommen ofhängeg vun der IP Adress an dem Hafen wou d'Ufro kritt gëtt. Zënter benannte-baséiert virtuellen Hosten eis de Virdeel ginn fir eng IP Adress an Hafen ze deelen, si si de Standard fir allgemeng Zweck Webserver a sollten de Setup vun der Wiel sinn, ausser Är installéiert Versioun vun Nginx ënnerstëtzt net Server Name Indication (SNI) , entweder well et eng wirklech al Versioun ass, oder well se ouni d'Kompilatiounsoptioun –with-http_ssl_module kompiléiert gouf.

Wann,

# nginx -V

gitt net déi markéiert Optiounen hei ënnen zréck:

Dir musst Är Versioun vum Nginx aktualiséieren oder se nei kompiléieren, ofhängeg vun Ärer ursprénglecher Installatiounsmethod. Fir Nginx ze kompiléieren, befollegt den Artikel hei ënnen:

  1. Installéieren a kompiléieren Nginx vu Quellen an RHEL/CentOS 7

Unzehuelen datt mir gutt sinn fir ze goen, musse mir bemierken datt eng aner Viraussetzung fir IP-baséiert virtuell Hosten d'Disponibilitéit vun getrennten IPen ass - entweder andeems se se un ënnerschiddlech Netzwierkschnëttplazen zouginn, oder duerch d'Benotzung vu virtuelle IPs (och bekannt als IP Aliasing) ).

Fir IP-Aliasing an Debian auszeféieren (unhuelen datt Dir eth0 benotzt), ännert /etc/network/interfaces wéi follegt:

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

Am Beispill hei uewen erstelle mir zwee virtuell NICs aus eth0: eth0:1 (192.168.0.25) an eth0:2 (192.168.0.26).

An CentOS, ëmbenennen /etc/sysconfig/network-scripts/ifcfg-enp0s3 als ifcfg-enp0s3:1 a maacht eng Kopie als ifcfg-enp0s3:2, an dann just änneren déi folgend Zeilen, respektiv:

DEVICE="enp0s3:1"
IPADDR=192.168.0.25

an

DEVICE="enp0s3:2"
IPADDR=192.168.0.26

Eemol gemaach, starten den Netzwierkservice nei:

# systemctl restart networking

Als nächst, maacht déi folgend Ännerungen un de Serverblocken déi virdru an dësem Artikel definéiert sinn:

An /etc/nginx/sites-available/tecmintlovesnginx.com.conf:

listen 192.168.0.25:80

An /etc/nginx/sites-available/nginxmeanspower.com.conf:

listen 192.168.0.26:80

Endlech, restart Nginx fir datt d'Ännerungen a Kraaft trieden.

# systemctl restart nginx

an vergiesst net Är lokal /etc/hosts deementspriechend ze aktualiséieren:

192.168.0.25 tecmintlovesnginx.com
192.168.0.26 nginxmeanspower.com

Also, all Ufro gemaach op 192.168.0.25 an 192.168.0.26 um Hafen 80 wäert tecmintlovesnginx.com respektiv nginxmeanspower.com zréckginn:

Wéi Dir an de Biller hei uewen kënnt gesinn, hutt Dir elo zwee IP-baséiert virtuell Hosten déi den eenzegen NIC an Ärem Server mat zwee verschiddenen IP Aliasen benotzen.

Resumé

An dësem Tutorial hu mir erkläert wéi Dir béid Numm-baséiert an IP-baséiert virtuell Hosten an Nginx opstellt. Och wann Dir wahrscheinlech déi éischt Optioun benotze wëllt, ass et wichteg ze wëssen datt déi aner Optioun nach ëmmer do ass wann Dir se braucht - gitt sécher datt Dir dës Entscheedung maacht nodeems Dir d'Fakten berücksichtegt an dësem Guide berécksiichtegt.

Zousätzlech wëllt Dir vläicht d'Nginx Dokumenter liese wéi et wäertvoll a gutt ass fir se dacks ze referenzéieren wärend Dir Serverblocken erstellt (do hutt Dir et - mir schwätzen elo an der Nginx Sprooch) an se konfiguréieren. Dir wäert net all d'Optiounen gleewen, déi verfügbar sinn fir dësen aussergewéinleche Webserver ze konfiguréieren an ofzestëmmen.

Wéi ëmmer, zéckt net eis eng Zeil mat dem Formulaire hei drënner ze schécken wann Dir Froen oder Kommentaren iwwer dësen Artikel hutt. Mir freeën eis vun Iech ze héieren, an Äre Feedback iwwer dëse Guide ass häerzlech wëllkomm.