Kā iestatīt uz vārda un IP balstītus virtuālos saimniekus (servera blokus) ar NGINX


Salīdzinoši īsā laika posmā, kopš Nginx tika izstrādāts un padarīts pieejams (nedaudz vairāk nekā 10 gadus), tas ir pieredzējis noturīgu un stabilu tīmekļa serveru pieaugumu, pateicoties tā augstajai veiktspējai un zemajai atmiņas lietošanai.

Tā kā Nginx ir bezmaksas un atvērtā pirmkoda programmatūra, to ir pieņēmuši tūkstošiem tīmekļa serveru administratoru visā pasaulē ne tikai Linux un * nix serveros, bet arī Microsoft Windows.

Tiem no mums, kas ir visvairāk pieraduši pie Apache, Nginx var būt nedaudz stāvs mācīšanās līkne (vismaz tas bija mans gadījums), taču tas noteikti atmaksājas, kad esat izveidojis pāris vietnes un sākat skatīt trafika un resursu izmantošanas statistiku.

Šajā rakstā mēs paskaidrosim, kā izmantot Nginx, lai iestatītu uz nosaukumiem un ip balstītu virtuālo mitināšanu CentOS/RHEL 7 serveros un Debian 8 un atvasinājumos, sākot ar Ubuntu 15.04 un tā spin-off.

  1. Operētājsistēma: Debian 8 Jessie serveris [IP 192.168.0.25]
  2. Vārteja: maršrutētājs [IP 192.168.0.1]
  3. Tīmekļa serveris: Nginx 1.6.2-5
  4. Manekena domēni: www.tecmintlovesnginx.com un www.nginxmeanspower.com.

Nginx tīmekļa servera instalēšana

Ja vēl neesat to izdarījis, lūdzu, instalējiet Nginx pirms turpināt. Ja jums nepieciešama palīdzība, lai sāktu darbu, ātri meklējot nginx šajā vietnē, tiks parādīti vairāki raksti par šo tēmu. Noklikšķiniet uz lupas ikonas šīs lapas augšdaļā un meklējiet atslēgvārdu nginx. Ja nezināt, kā meklēt rakstus šajā vietnē, neuztraucieties, šeit mēs esam pievienojuši saites uz nginx rakstiem, vienkārši pārejiet un instalējiet to atbilstoši attiecīgajiem Linux izplatījumiem.

  1. Instalējiet un apkopojiet Nginx no avotiem RHEL/CentOS 7
  2. Instalējiet Nginx tīmekļa serveri uz Debian 8
  3. Instalējiet Nginx ar MariaDB un PHP/PHP-FPM vietnē Fedora 23
  4. Instalējiet Nginx tīmekļa serveri Ubuntu 15.10 serverī/darbvirsmā
  5. Nginx vietņu direktoriju aizsardzība ar paroli

Pēc tam gatavojieties turpināt ar pārējo šo apmācību.

Uz nosaukuma balstītu virtuālo saimnieku izveidošana Nginx

Kā esmu pārliecināts, ka jūs jau zināt, virtuālais resursdators ir vietne, kuru Nginx apkalpo vienā mākoņa VPS vai fiziskā serverī. Tomēr Nginx dokumentos tā vietā atradīsit terminu "servera bloki" , taču tie būtībā ir viens un tas pats, ko sauc ar dažādiem nosaukumiem.

Pirmais solis, lai iestatītu virtuālos resursdatorus, ir viena vai vairāku serveru bloku izveidošana (mūsu gadījumā mēs izveidosim divus, katram katram manekena domēnam) galvenajā konfigurācijas failā (/etc/nginx/nginx.conf) vai iekšpusē/utt./nginx/sites-available.

Lai gan šajā direktorijā esošo konfigurācijas failu nosaukumu (pieejamās vietnes) var iestatīt pēc vēlēšanās, ieteicams izmantot domēnu nosaukumu, turklāt mēs izvēlējāmies pievienot .conf paplašinājums, lai norādītu, ka tie ir konfigurācijas faili.

Šie serveru bloki var būt samērā sarežģīti, taču pamata formā tie sastāv no šāda satura:

Vietnē /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;  
}

Vietnē /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;  
}

Varat izmantot iepriekš minētos blokus, lai sāktu iestatīt savus virtuālos resursdatorus, vai arī varat izveidot failus ar pamata skeletu no/etc/nginx/sites-available/default (Debian) vai /etc/nginx/nginx.conf.default ( CentOS).

Pēc nokopēšanas mainiet viņu atļaujas un īpašumtiesības:

# 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

Kad esat pabeidzis, izdzēsiet faila paraugu vai pārdēvējiet to par kaut ko citu, lai izvairītos no neskaidrībām vai konfliktiem.

Lūdzu, ņemiet vērā, ka jums būs jāizveido arī žurnālu direktorijs (/var/www/logs ) un jānorāda Nginx lietotājs (nginx vai www-data, atkarībā no tā, vai izmantojat CentOS vai Debian ) lasīšanas un rakstīšanas atļaujas:

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

Virtuālajiem resursdatoriem tagad jābūt iespējotiem, izveidojot simbolu saiti uz šo failu vietņu iespējotajā direktorijā:

# 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

Pēc tam katram virtuālajam resursdatoram izveidojiet HTML faila paraugu ar nosaukumu index.html /var/www//public_html (aizstājiet kā nepieciešams). Ja nepieciešams, mainiet šo kodu:

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

Visbeidzot, pārbaudiet Nginx konfigurāciju un palaidiet tīmekļa serveri. Ja konfigurācijā ir kļūdas, jums tiks piedāvāts tās labot:

# nginx -t && systemctl start nginx

un pievienojiet šādus ierakstus vietējā datora failam /etc/hosts kā pamata nosaukuma izšķiršanas stratēģiju:

192.168.0.25 tecmintlovesnginx.com
192.168.0.25 nginxmeanspower.com

Pēc tam palaidiet tīmekļa pārlūku un dodieties uz iepriekš uzskaitītajiem URL:

Lai Nginx pievienotu vairāk virtuālo resursdatoru, vienkārši atkārtojiet iepriekš aprakstītās darbības tik reižu, cik nepieciešams.

Uz IP balstīti virtuālie saimnieki Nginx

Atšķirībā no nosaukuma virtuālajiem resursdatoriem, kur visiem resursdatoriem var piekļūt, izmantojot to pašu IP adresi, uz IP balstītajiem virtuālajiem resursdatoriem katram ir nepieciešama atšķirīga IP: port kombinācija.

Tas ļauj tīmekļa serverim atgriezt dažādas vietnes atkarībā no IP adreses un porta, kurā tiek saņemts pieprasījums. Tā kā nosauktie virtuālie resursdatori dod mums priekšrocības koplietot IP adresi un portu, tie ir vispārējas nozīmes tīmekļa serveru standarts, un tiem jābūt izvēlētiem iestatījumiem, ja vien jūsu instalētā Nginx versija neatbalsta servera nosaukuma norādīšanu (SNI) vai nu tāpēc, ka tā ir PATIESI novecojusi versija, vai arī tāpēc, ka tā tika kompilēta bez kompilācijas opcijas –with-http_ssl_module.

Ja,

# nginx -V

neatgriež tālāk norādītās opcijas:

atkarībā no sākotnējās instalēšanas metodes jums būs jāatjaunina vai jāpārkompilē Nginx versija. Lai sastādītu Nginx, izpildiet šo rakstu:

  1. Instalējiet un apkopojiet Nginx no avotiem RHEL/CentOS 7

Pieņemot, ka mums ir labi ejams, mums jāatzīmē, ka vēl viens priekšnoteikums virtuālo resursdatoru, kuru pamatā ir IP, ir atsevišķu IP pieejamība - vai nu piešķirot tos atšķirīgām tīkla saskarnēm, vai arī izmantojot virtuālos IP (kurus dēvē arī par IP aizstājvārdus) ).

Lai veiktu IP aizstājvārdu izmantošanu Debianā (pieņemot, ka izmantojat eth0), rediģējiet /etc/network/interfaces šādi:

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

Iepriekš minētajā piemērā mēs izveidojam divus virtuālos NIC no eth0: eth0: 1 (192.168.0.25) un eth0: 2 (192.168.0.26).

CentOS pārdēvējiet/etc/sysconfig/network-scripts/ifcfg-enp0s3 kā ifcfg-enp0s3: 1 un izveidojiet kopiju kā ifcfg-enp0s3: 2 un pēc tam vienkārši attiecīgi mainiet šādas rindas:

DEVICE="enp0s3:1"
IPADDR=192.168.0.25

un

DEVICE="enp0s3:2"
IPADDR=192.168.0.26

Kad tas ir izdarīts, restartējiet tīkla pakalpojumu:

# systemctl restart networking

Pēc tam veiciet šādas izmaiņas šajā rakstā iepriekš definētajos servera blokos:

Vietnē /etc/nginx/sites-available/tecmintlovesnginx.com.conf:

listen 192.168.0.25:80

Vietnē /etc/nginx/sites-available/nginxmeanspower.com.conf:

listen 192.168.0.26:80

Visbeidzot, restartējiet Nginx, lai izmaiņas stātos spēkā.

# systemctl restart nginx

un neaizmirstiet attiecīgi atjaunināt vietējo /etc/hosts :

192.168.0.25 tecmintlovesnginx.com
192.168.0.26 nginxmeanspower.com

Tādējādi katrs pieprasījums, kas 80. portā veikts uz 192.168.0.25 un 192.168.0.26, atgriezīs attiecīgi tecmintlovesnginx.com un nginxmeanspower.com:

Kā redzat iepriekš redzamajos attēlos, tagad jums ir divi virtuālie resursdatori, kuru pamatā ir IP, un jūsu serverī tiek izmantots vienīgais NIC ar diviem dažādiem IP aizstājvārdiem.

Kopsavilkums

Šajā apmācībā mēs esam paskaidrojuši, kā iestatīt virtuālos resursdatorus uz nosaukuma un IP uz Nginx. Lai gan jūs, iespējams, vēlēsities izmantot pirmo iespēju, ir svarīgi zināt, ka otra opcija joprojām ir pieejama, ja jums tā nepieciešama - vienkārši pārliecinieties, ka esat pieņēmis šo lēmumu, ņemot vērā šajā rokasgrāmatā izklāstītos faktus.

Turklāt, iespējams, vēlēsities pievienot grāmatzīmi Nginx dokumentiem, jo ir vērts un bieži tos atsaukties, veidojot servera blokus (tur jums tas ir - mēs tagad runājam Nginx valodā) un konfigurējot tos. Jūs neticēsiet visām iespējām, kas pieejamas, lai konfigurētu un pielāgotu šo izcilo tīmekļa serveri.

Kā vienmēr, nevilcinieties nomest mums rindiņu, izmantojot zemāk esošo veidlapu, ja jums ir kādi jautājumi vai komentāri par šo rakstu. Mēs ceram dzirdēt no jums, un jūsu atsauksmes par šo ceļvedi ir ļoti laipni gaidītas.