Nimi- ja IP-pohjaisten virtuaalipalvelinten (palvelinlohkojen) määrittäminen NGINX:n avulla
Suhteellisen lyhyessä ajassa sen kehittämisestä ja saatavuudesta (hieman yli 10 vuotta) Nginx on kokenut jatkuvan ja tasaisen kasvun verkkopalvelimien joukossa korkean suorituskyvyn ja vähäisen muistin käytön vuoksi.
Koska Nginx on ilmainen ja avoimen lähdekoodin ohjelmisto, tuhannet verkkopalvelinjärjestelmänvalvojat ympäri maailmaa ovat ottaneet sen käyttöön, ei vain Linux- ja *nix-palvelimissa, vaan myös Microsoft Windowsissa.
Älä missaa: Apache-nimi- ja IP-pohjainen virtuaalinen hosting
Niille meistä, jotka ovat tottuneet Apacheen, Nginxillä voi olla melko jyrkkä oppimiskäyrä (ainakin minun tapauksessani), mutta se kannattaa, kun olet perustanut parin. sivustoista ja ala nähdä liikenne- ja resurssien käyttötilastot.
Tässä artikkelissa selitämme, kuinka Nginxin avulla määritetään nimipohjainen ja ip-pohjainen virtuaalinen hosting CentOS/RHEL:ssä. 7 palvelimet ja Debian 8 ja johdannaiset, alkaen Ubuntu 15.04:stä ja sen oheistuotteista.
Tämän artikkelin testausskenaariomme on seuraava:
- Käyttöjärjestelmä: Debian 8 Jessie -palvelin [IP 192.168.0.25]
- Yhdyskäytävä: reititin [IP 192.168.0.1]
- Web-palvelin: Nginx 1.6.2-5
- Dummy Domains: www.tecmintlovesnginx.com ja www.nginxmeanspower.com.
Nginx-verkkopalvelimen asentaminen
Jos et ole jo tehnyt niin, asenna Nginx ennen kuin jatkat. Jos tarvitset apua aloittamiseen, nopea nginx-haku tällä sivustolla palauttaa useita artikkeleita tästä aiheesta. Napsauta tämän sivun yläreunassa olevaa suurennuslasikuvaketta ja hae avainsanalla nginx. Jos et tiedä kuinka etsiä artikkeleita tältä sivustolta, älä huoli, olemme lisänneet linkkejä nginx-artikkeleihin, käy vain läpi ja asenna se vastaavien Linux-jakelujesi mukaisesti.
- Asenna ja käännä Nginx lähteistä RHEL/CentOS 7:ssä
- Asenna Nginx Web Server Debian 8:aan
- Asenna Nginx MariaDB:n ja PHP/PHP-FPM:n kanssa Fedora 23:een
- Asenna Nginx Web Server Ubuntu 15.10 -palvelimeen/työpöytään
- Salasanasuojaus Nginx-verkkosivustohakemistot
Valmistaudu sitten jatkamaan tämän opetusohjelman lopulla.
Nimipohjaisten virtuaalipalvelinten luominen Nginxissä
Kuten olen varma, että tiedät jo, virtuaalinen isäntä on verkkosivusto, jota Nginx palvelee yhdessä pilvi-VPS:ssä tai fyysisessä palvelimessa. Nginx-dokumenteista löydät sen sijaan termin "palvelinlohkot"
, mutta ne ovat periaatteessa sama asia, jota kutsutaan eri nimillä.
Ensimmäinen vaihe virtuaalisten isäntien määrittämisessä on luoda yksi tai useampi palvelinlohko (tässä tapauksessa luomme kaksi, yksi kullekin valeverkkotunnukselle) päämääritystiedostoon (/etc/nginx/nginx.conf ). ) tai sisällä /etc/nginx/sites-available.
Vaikka tämän hakemiston määritystiedostojen nimet (sites-available) voidaan asettaa haluamaksesi, on hyvä idea käyttää verkkotunnusten nimiä, ja lisäksi päätimme lisätä .conf
-tunniste osoittaa, että nämä ovat asetustiedostoja.
Nämä palvelinlohkot voivat olla suhteellisen monimutkaisia, mutta perusmuodossaan ne koostuvat seuraavasta sisällöstä:
Osoitteessa /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;
}
Osoitteessa /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;
}
Voit käyttää yllä olevia lohkoja virtuaalisten isäntien asennuksen aloittamiseen tai voit luoda tiedostot perusrungolla osoitteesta /etc/nginx/sites-available/default (Debian >) tai /etc/nginx/nginx.conf.default (CentOS).
Kun olet kopioinut, muuta heidän käyttöoikeuksiaan ja omistajuustaan:
chmod 660 /etc/nginx/sites-available/tecmintlovesnginx.com.conf
chmod 660 /etc/nginx/sites-available/nginxmeanspower.com.conf
Debian ja johdannaiset
chgrp www-data /etc/nginx/sites-available/tecmintlovesnginx.com.conf
chgrp www-data /etc/nginx/sites-available/nginxmeanspower.com.conf
CentOS ja RHEL
chgrp nginx /etc/nginx/sites-available/tecmintlovesnginx.com.conf
chgrp nginx /etc/nginx/sites-available/nginxmeanspower.com.conf
Kun olet valmis, poista mallitiedosto tai nimeä se uudelleen joksikin muuksi sekaannusten ja ristiriitojen välttämiseksi.
Huomaa, että sinun on myös luotava lokien hakemisto (/var/www/logs
) ja annettava Nginx-käyttäjä (nginx tai www-data) sen mukaan, käytätkö CentOS:ää vai Debiania) luku- ja kirjoitusoikeudet sen yli:
mkdir /var/www/logs
chmod -R 660 /var/www/logs
chgrp <nginx user> /var/www/logs
Virtuaalipalvelimet on nyt otettava käyttöön luomalla symbolilinkki tähän tiedostoon sivustoja tukevaan hakemistoon:
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
Luo seuraavaksi näyte html-tiedosto nimeltä index.html
kohtaan /var/www/
kullekin virtuaaliselle isännälle (korvaa
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Tecmint loves Nginx</title>
</head>
<body>
<h1>Tecmint loves Nginx!</h1>
</body>
</html>
Testaa lopuksi Nginx-kokoonpano ja käynnistä verkkopalvelin. Jos määrityksissä on virheitä, sinua pyydetään korjaamaan ne:
nginx -t && systemctl start nginx
ja lisää seuraavat merkinnät paikallisen koneen /etc/hosts
-tiedostoosi perusnimenratkaisustrategiana:
192.168.0.25 tecmintlovesnginx.com
192.168.0.25 nginxmeanspower.com
Käynnistä sitten verkkoselain ja siirry yllä lueteltuihin URL-osoitteisiin:
Lisää virtuaalisia isäntiä Nginxiin toistamalla yllä kuvatut vaiheet niin monta kertaa kuin tarvitaan.
IP-pohjaiset virtuaalipalvelimet Nginxissä
Toisin kuin nimipohjaiset virtuaalipalvelimet, joissa kaikki isännät ovat käytettävissä saman IP-osoitteen kautta, IP-pohjaiset virtuaaliset isännät vaativat eri IP:portin
yhdistelmä jokaista.
Tämän ansiosta verkkopalvelin voi palauttaa eri sivustoja IP-osoitteen ja portin mukaan, jossa pyyntö vastaanotetaan. Koska nimettyjen virtuaalisten isäntien avulla voimme jakaa IP-osoitteen ja portin, ne ovat yleiskäyttöisten verkkopalvelimien standardi, ja niiden tulisi olla valinta, ellei asennettu Nginx-versio tue palvelimen nimen ilmaisua. (SNI), joko siksi, että se on TODELLA vanhentunut versio, tai koska se on käännetty ilman –with-http_ssl_module-käännösvaihtoehtoa.
Jos,
nginx -V
ei palauta alla olevia korostettuja vaihtoehtoja:
sinun on päivitettävä Nginx-versiosi tai käännettävä se uudelleen alkuperäisen asennustavan mukaan. Nginxin kokoamiseksi seuraa alla olevaa artikkelia:
- Asenna ja käännä Nginx lähteistä RHEL/CentOS 7:ssä
Olettaen, että olemme kunnossa, meidän on huomioitava, että toinen IP-pohjaisten virtuaalipalvelinten edellytys on erillisten IP-osoitteiden saatavuus – joko määrittämällä ne erillisiin verkkoliitäntöihin tai käyttämällä virtuaalisia IP-osoitteet (tunnetaan myös nimellä IP-alias).
Suorita IP-alias Debianissa (olettaen, että käytät eth0a), muokkaa /etc/network/interfaces
seuraavasti:
Debian ja johdannaiset
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
Yllä olevassa esimerkissä luomme kaksi virtuaalista verkkokorttia seuraavista: eth0: eth0:1
(192.168.0.25) ja eth0:2
(192.168.0.26).
CentOS ja RHEL
Nimeä CentOS:ssä /etc/sysconfig/network-scripts/ifcfg-enp0s3 muotoon ifcfg-enp0s3:1
ja tee kopio muodossa ifcfg-enp0s3:2
. ja muuta sitten vain seuraavia rivejä vastaavasti:
DEVICE="enp0s3:1"
IPADDR=192.168.0.25
ja
DEVICE="enp0s3:2"
IPADDR=192.168.0.26
Kun olet valmis, käynnistä verkkopalvelu uudelleen:
systemctl restart networking
Tee seuraavaksi seuraavat muutokset tässä artikkelissa aiemmin määritettyihin palvelinlohkoihin:
Osoitteessa /etc/nginx/sites-available/tecmintlovesnginx.com.conf:
listen 192.168.0.25:80
Osoitteessa /etc/nginx/sites-available/nginxmeanspower.com.conf:
listen 192.168.0.26:80
Lopuksi käynnistä Nginx uudelleen, jotta muutokset tulevat voimaan.
systemctl restart nginx
äläkä unohda päivittää paikallista /etc/hosts
:ta vastaavasti:
192.168.0.25 tecmintlovesnginx.com
192.168.0.26 nginxmeanspower.com
Näin ollen jokainen portissa 80 osoitteeseen 192.168.0.25 ja 192.168.0.26 tehty pyyntö palauttaa osoitteen tecmintlovesnginx.com ja nginxmeanspower.com:
Kuten yllä olevista kuvista näet, sinulla on nyt kaksi IP-pohjaista virtuaalipalvelinta, jotka käyttävät palvelimesi ainoaa verkkokorttia kahdella eri IP-aliaksella.
Yhteenveto
Tässä opetusohjelmassa olemme selittäneet, kuinka voit määrittää sekä nimipohjaiset että IP-pohjaiset virtuaalipalvelimet Nginxissä. Vaikka haluat todennäköisesti käyttää ensimmäistä vaihtoehtoa, on tärkeää tietää, että toinen vaihtoehto on edelleen olemassa, jos tarvitset sitä – varmista vain, että teet tämän päätöksen harkittuasi tässä oppaassa esitettyjä tosiasioita.
Lisäksi voit halutessasi merkitä Nginx-dokumentit kirjanmerkkeihin, koska niihin kannattaa viitata usein luodessasi palvelinlohkoja (siellä se on - puhumme nyt Nginx-kielellä) ja määrittäessäsi niitä. Et usko kaikkia vaihtoehtoja, jotka ovat käytettävissä tämän erinomaisen verkkopalvelimen määrittämiseksi ja virittämiseksi.
Kuten aina, älä epäröi lähettää meille sähköpostia alla olevalla lomakkeella, jos sinulla on kysyttävää tai kommentteja tästä artikkelista. Odotamme kuulevamme sinusta, ja palautteesi tästä oppaasta on erittäin tervetullutta.