Nginx-virtuaaliisännän (tai -palvelimen) oletusmäärityksen ymmärtäminen
Kun olet asentanut Nginxin, yksi ensimmäisistä tehtävistä on tarkistaa, toimiiko se oikein.
Yksi tapa tehdä se on lähettää selaimesi HTTP-pyyntö sen testaamiseksi.
Jos olit asentanut Nginxin paikalliselle koneellesi, voit kirjoittaa selaimesi sijaintipalkkiin http://localhost tai http://127.0.0.1.
Kun olit asettanut Nginxin erilliselle koneelle kotiverkossasi, voit myös kirjoittaa http:// selaimesi sijaintipalkkiin. Esimerkiksi, kuinka isännöidä WordPress-verkkosivustoa Raspberry Pi:llä, jossa on Raspbian Buster Lite ja Nginx, olin syöttänyt osoitteen http://192.168.1.114 sijainniksi, jolla testasin Raspberry Pi:ssäni toimivaa Nginx-palvelinta.
Olkoon se sitten http://localhost, http://127.0.0.1, http://, näet aina tämän sivun selaimesi näytöllä:
Jos ihmettelet, miksi Nginx käyttäytyy tällä tavalla, tämä viesti selittää, mitä Nginx Virtual Host -oletuskokoonpano tekee Nginxille.
Jotta tietää, mitä Nginx Virtual Host -oletuskokoonpanot tekevät, meidän on löydettävä ne sisältävä tiedosto. Koska Nginx käsittelee määritykset tiedostosta, jonka nimi on nginx.conf, voimme löytää sen käyttämällä find-komentoa.
Tämän vuoksi suorita seuraava komento päätteessäsi löytääksesi nginx.conf:
sudo find / -name nginx.confTyypillisesti löydät tiedoston joko hakemistosta /usr/local/nginx/conf, /etc/nginx tai /usr/local/etc/nginx.
Kun tiedät missä nginx.conf on, voit avata määritystiedoston ja tarkistaa sen sisällön. Esimerkiksi Debian-pohjaisessa käyttöjärjestelmässä annan seuraavan komennon tarkistaakseni pääasetustiedoston:
cat /etc/nginx/nginx.confKun tämä komento suoritettiin Raspbian Buster Lite -laitteessani, sain seuraavan sisällön:
käyttäjä www-data;työntekijän_prosessit auto;pid /run/nginx.pid;sisällytä /etc/nginx/modules-enabled/*.conf;tapahtumat {worker_connections 768;# multi_accept on;}http {### Perusasetukset##sendfile päällä;tcp_nopush päällä;tcp_nodelay päällä;keepalive_timeout 65;types_hash_max_size 2048;# server_tokens off;# server_names_hash_bucket_size 32;# server_name_in_redirect off;sisällytä /etc/nginx_stream-asetukset;#octe.ult_type SS/mixme;#octe. ## ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Pudotetaan SSLv3, viite: POODLEssl_prefer_server_ciphers on;### Lokiasetukset##access_log /var/log/nginx/access.log;error_log /var/log/nginx/error.log;### Gzip-asetukset##gzip on; # gzip_vary on;# gzip_proxyed any;# gzip_comp_level 6;# gzip_buffers 16 8k;# gzip_http_version 1.1;# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xjam+rs; ### Virtual Host Configs##include /etc/nginx/conf.d/*.conf;include /etc/nginx/sites-enabled/*;}#mail {## Katso esimerkkitodennusskripti osoitteessa:## http: //wiki.nginx.org/ImapAuthenticateWithApachePhpScript# ## auth_http localhost/auth.php;## pop3_capabilities "TOP" "USER";## imap_capabilities "IMAP4rev1" "UIDPLUS";# #palvelin {#kuuntele0 localhost:11 protokolla pop3;#proxyon;#}# #server {#listen localhost:143;#protocol imap;#proxyon;#}#}Koska tutkimme Nginx Virtual Host -oletuskokoonpanoja, tarkista Virtual Hostilla kommentoitava osio Konfiguroi nähdäksesi mitä tapahtuu. Jos mietit, kommentit Nginx-kokoonpanoissa alkavat #-merkillä.
Tämän vuoksi voimme nähdä, että päämääritystiedosto sisältää:
mikä tahansa .conf-päätteinen asetustiedosto /etc/nginx/conf.d/-hakemistossa.all /etc/nginx/sites-enabled/-hakemiston määritystiedostot.Nämä kohdat huomioon ottaen voimme sitten etsiä oletusasetustiedostoa /etc/nginx/conf.d/- ja /etc/nginx/sites-enabled/-hakemistoista.
Näistä kahdesta hakemistosta sinun pitäisi pystyä löytämään tiedosto, joka sisältää oletusarvoiset Virtual Host -määritykset. Raspbian Buster Lite -käyttöjärjestelmässäni löysin symbolisen linkin /etc/nginx/sites-enabled/default, joka osoittaa /etc/nginx/sites-available/default. Kun meillä on tällainen tiedostoorganisaatio, voimme poistaa Nginx-oletuskokoonpanot poistamatta varsinaista tiedostoa.
Suoritetaan seuraava komento nähdäksesi, mitä Nginx-oletusasetustiedostossa on:
cat /etc/nginx/sites-available/defaultKun olet suorittanut yllä olevan komennon, sinun pitäisi saada jotain seuraavanlaista:
### Sinun tulee tarkastella seuraavia URL-osoitteita saadaksesi vankan käsityksen Nginx-määritystiedostoista, jotta Nginxin teho saadaan täysin valloilleen.# https://www.nginx.com/resources/wiki/start/# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/# https://wiki.debian.org/Nginx/DirectoryStructure## Useimmissa tapauksissa järjestelmänvalvojat poistavat tämän tiedoston sivustoilta- enabled/ and# jätä se viittaukseksi käytettävissä oleviin sivustoihin, joissa nginx pakkaustiimi päivittää sitä edelleen.## Tämä tiedosto lataa automaattisesti muiden# sovellusten, kuten Drupalin tai WordPressin, toimittamat määritystiedostot. Nämä sovellukset tulevat# saataville kyseisen paketin nimen polun alla, kuten /drupal8.## Katso tarkempia esimerkkejä osoitteesta /usr/share/doc/nginx-doc/examples/.### Palvelimen oletuskokoonpano#server {listen 80 default_server;listen [::]:80 default_server;# SSL configuration## listen 443 ssl default_server;# listen [::]:443 ssl default_server;## Huomautus: Sinun tulee poistaa gzip käytöstä SSL-liikenteessä.# Katso: https://bugs.debian.org/773332## Lue ssl_ciphers varmistaaksesi suojatun kokoonpanon.# Katso: https://bugs.debian.org/765782## Paketin ssl-cert # luomat itse allekirjoitetut varmenteet# Älä käytä niitä tuotantopalvelimessa!## include snippets/snakeoil.conf;root /var/www/html;# Lisää index.php luetteloon, jos käytät PHPindex index.html index.htm index.nginx- debian.html;palvelimen_nimi _;sijainti / {# Yritä ensin palvella pyyntöä tiedostona, sitten# hakemistona, sitten palaa näyttämään 404.try_files $uri $uri/ =404;}# välitä PHP-skriptit FastCGI-palvelimelle# #location ~ \.php$ {#include snippets/fastcgi-php.conf;### Php-fpm:llä (tai muilla unix-liitännöillä):#fastcgi_pass unix:/run/php/php7.3-fpm.sock;# # Php-cgi:llä (tai muilla tcp-liitännöillä):#fastcgi_pass 127.0.0.1:9000;#}# estää pääsyn .htaccess-tiedostoihin, jos Apachen dokumentin root# on yhtäpitävä nginxin one##location ~ /\.ht {#deny kanssa all;#}}# Virtual Host -määritykset example.com## Voit siirtää sen toiseen tiedostoon kohdasta sites-available/ ja ottaa sen käyttöön symbolin that# to sites-enabled/.##palvelin {#listen 80;# kuuntele [::]:80;##palvelimen_nimi esimerkki.fi;##root /var/www/example.com;#index index.html;##location / {#try_files $uri $uri/ =404;#} #}Tässä tiedostossa annettuja tietoja tarkastelemalla voimme todellakin oppia paljon Nginx-palvelimesta. Jos haluat olla taitavampi Nginxin kanssa, haluat käyttää kommenteissa annettuja resursseja.
Tämän viestin tavoitteena on kuitenkin ymmärtää, mitä Nginx-virtuaaliisäntä (tai -palvelin) -oletuskokoonpano tekee palvelimellemme. Keskitytään siis tähän hetkeen.
Asetustiedostosta näemme, että vain yksi palvelinlohko on kommentoimatta. Siksi tämä on määrityslohko, jonka Nginx ottaa käyttöön.
Kaksi ensimmäistä kommentoimatonta lausetta käskevät Nginxiä kuuntelemaan verkkopaketteja sen tietokoneen portissa 80, jossa se toimii:
kuuntele 80 oletuspalvelin;kuuntele [::]:80 oletuspalvelin;Ensimmäinen lauseke koskee verkkoliitäntää, jolla on IPv4-osoite, ja toinen lauseke verkkorajapinnalle, jolla on IPv6-osoite. Tämän lisäksi default_server-parametri ilmoittaa, että tätä palvelinlohkoa käytetään Nginxin oletuskokoonpanona.
Seuraavaksi
root /var/www/html;käyttää Nginxiä katsomaan palvelimen /var/www/html-hakemistosta tiedostoja, jotka palvelevat tähän palvelinlohkoon kohdistettuja HTTP-pyyntöjä.
Sen jälkeen
palvelimen_nimi _;merkitsee palvelinlohkon "catch all" -lohkoksi. Aina kun Nginx ei löydä yhtään palvelinlohkoa, joka vastaa saapuvaa HTTP-pyyntöä, tätä palvelinlohkoa käytetään päätettäessä, kuinka kyseinen pyyntö palvellaan.
Lopuksi
location / {# Yritä ensin palvella pyyntöä tiedostona, sitten# hakemistona, ja palaa sitten näyttämään 404.try_files $uri $uri/ =404;}saa Nginxin etsimään tiedoston /var/ www/html-hakemisto, joka palautetaan HTTP-vastauksena saapuvalle HTTP-pyynnölle. Jos mitään palautettavaa ei ole, Nginx palauttaa HTTP-vastauksen, jonka tila on 404.
Mutta miten Nginxin tervetulosivu palautetaan, kun yritämme päästä pääosoitteeseen? Jos jäljität määritykset päätiedostosta, näet seuraavan kokoonpanon:
index index.html index.htm index.nginx-debian.html;Tämä saa Nginxin palauttamaan jonkin seuraavista tiedostoista juurihakemistossa, jos saatavilla:
index.htmlindex.htmindex.nginx-debian.htmlKoska /var/www/html-hakemistossa on tiedosto nimeltä index.nginx-debian.html, tiedoston sisältö palautetaan, kun yritämme käyttää juuri url.
PREV: Final Fantasy XIV: Realm Reborn -palvelimet, siirrot ja paljon muuta...