• Дигитални аксесоари
  • сървър
  • Дигитален живот
  • Политика за поверителност
  • Свържете се с нас
  1. Home
  2. Article
  3. Разбиране на виртуалния хост Nginx по подразбиране (или сървър ...

Разбиране на виртуалния хост Nginx по подразбиране (или сървър ...

Rsdaa 09/12/2021 1574

Разбиране на конфигурацията на Nginx виртуален хост (или сървър) по подразбиране

След като инсталирате Nginx, едно от първите неща, които трябва да направите, е да проверите дали работи добре.

Един от начините да направите това е да използвате браузъра си, за да изпратите HTTP заявка, за да го тествате.

Ако сте инсталирали Nginx на вашата локална машина, тогава можете да въведете http://localhost или http://127.0.0.1 в лентата за местоположение на вашия браузър.

Когато сте настроили Nginx на отделна машина във вашата домашна мрежа, можете също да въведете http:// в лентата за местоположение на вашия браузър. Например, в това как да хоствам уебсайт на WordPress на Raspberry Pi с Raspbian Buster Lite и Nginx, бях въвел http://192.168.1.114 като местоположение за тестване на Nginx сървъра, работещ на моя Raspberry Pi.

Така да е http://localhost, http://127.0.0.1, http://, винаги ще виждате тази страница на екрана на вашия браузър:

В случай, че се чудите защо вашият Nginx се държи по този начин, тази публикация ще обясни какво прави конфигурацията на Nginx Virtual Host по подразбиране с Nginx.

Къде се намира вашият конфигурационен файл на Nginx?

За да знаем какво правят конфигурациите на Nginx Virtual Host по подразбиране, трябва да намерим файла, който ги съдържа. Тъй като Nginx обработва конфигурации от файл с име nginx.conf, можем да използваме командата find, за да го намерим.

Като се има предвид това, изпълнете следната команда във вашия терминал, за да намерите nginx.conf:

sudo find / -name nginx.conf

Обикновено можете да намерите файла в /usr/local/nginx/conf, /etc/nginx или /usr/local/etc/nginx.

Търсете конфигурационния файл по подразбиране, който дойде с вашата инсталация на Nginx

След като разберете къде е nginx.conf, можете да отворите конфигурационния файл, за да проверите съдържанието му. Например, на операционна система, базирана на Debian, ще изпълня следната команда, за да проверя главния конфигурационен файл:

cat /etc/nginx/nginx.conf

Когато тази команда беше изпълнена на моя Raspbian Buster Lite, получих следното съдържание:

потребител www-data;worker_processes auto;pid /run/nginx.pid;include /etc/nginx/modules-enabled/*.conf;events {worker_connections 768;# multi_accept on;}http {### Основни настройки##sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;types_hash_max_size 2048;# server_tokens off;# server_names_hash_bucket_size 32;# server_name_in_redirect off;include /etc/nginx/mime.types;default_type application/octet-stream;### SSL Settings## ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Премахване на SSLv3, ref: POODLEssl_prefer_server_ciphers on;### Logging Settings##access_log /var/log/nginx/access.log;error_log /var/log/nginx/error.log;### Gzip Settings##gzip on; # gzip_vary on;# gzip_proxied any;# gzip_comp_level 6;# gzip_buffers 16 8k;# gzip_http_version 1.1;# gzip_types текст/обикновен текст/css приложение/json приложение/javascript текст/xml приложение/xml приложение/xml+rss текст/javascript; ### Конфигурации на виртуален хост##include /etc/nginx/conf.d/*.conf;include /etc/nginx/sites-enabled/*;}#mail {## Вижте примерен скрипт за удостоверяване на:## http: //wiki.nginx.org/ImapAuthenticateWithApachePhpScript# ## auth_http localhost/auth.php;## pop3_capabilities "TOP" "USER";## imap_capabilities "IMAP4rev1" "UIDPLUS";# #server {#listen localhost:110;# protocol pop3;#proxyon;#}# #server {#listen localhost:143;#protocol imap;#proxyon;#}#}

Тъй като проучваме конфигурациите на Nginx Virtual Host по подразбиране, проверете раздела, коментиран с Virtual Host Конфигурации, за да видите какво се случва. В случай, че се чудите, коментарите в конфигурациите на Nginx започват със знак #.

Като се има предвид това, можем да видим, че основният конфигурационен файл ще включва:

всеки конфигурационен файл, завършващ с .conf в директорията /etc/nginx/conf.d/.всички конфигурационни файлове в директорията /etc/nginx/sites-enabled/.

Като имаме предвид тези точки, можем да погледнем в директориите /etc/nginx/conf.d/ и /etc/nginx/sites-enabled/ за конфигурационния файл по подразбиране.

Разбиране на конфигурационния файл по подразбиране на Nginx

В тези две директории трябва да можете да намерите файл, който съдържа конфигурациите на виртуален хост по подразбиране. В случая на моята операционна система Raspbian Buster Lite намерих символна връзка /etc/nginx/sites-enabled/default, която сочи към /etc/nginx/sites-available/default. Когато имаме такава файлова организация, можем да премахнем конфигурациите на Nginx по подразбиране, без да изтриваме действителния файл.

Нека изпълним следната команда, за да видим какво има в конфигурационния файл на Nginx по подразбиране:

cat /etc/nginx/sites-available/default

След като изпълните горната команда, трябва да получите нещо подобно на следното:

### Трябва да разгледате следните URL адреси, за да разберете солидно# конфигурационните файлове на Nginx, за да разгърнете напълно силата на Nginx.# https://www.nginx.com/resources/wiki/start/# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/# https://wiki.debian.org/Nginx/DirectoryStructure## В повечето случаи администраторите ще премахнат този файл от сайтове- активиран/ и# го оставете като референция в наличните сайтове, където ще продължи да се актуализира от екипа за опаковане на nginx.## Този файл автоматично ще зареди конфигурационни файлове, предоставени от други# приложения, като Drupal или WordPress. Тези приложения ще бъдат направени# достъпни под път с това име на пакет, като /drupal8.## Моля, вижте /usr/share/doc/nginx-doc/examples/ за по-подробни примери.### Конфигурация на сървъра по подразбиране#server {listen 80 default_server;listen [::]:80 default_server;# SSL конфигурация## listen 443 ssl default_server;# listen [::]:443 ssl default_server;## Забележка: Трябва да деактивирате gzip за SSL трафик.# Вижте: https://bugs.debian.org/773332## Прочетете за ssl_ciphers, за да осигурите сигурна конфигурация.# Вижте: https://bugs.debian.org/765782## Самоподписани сертификати, генерирани от пакета ssl-cert# Не ги използвайте в производствен сървър!## include snippets/snakeoil.conf;root /var/www/html;# Добавете index.php към списъка, ако използвате PHPindex index.html index.htm index.nginx- debian.html;име_на_сървър _;локация / {# Първи опит за обслужване на заявка като файл, след това# като директория, след което се връща към показване на 404.try_files $uri $uri/ =404;}# предаване на PHP скриптове към FastCGI сървър# #location ~ \.php$ {#include snippets/fastcgi-php.conf;### С php-fpm (или други unix сокети):#fastcgi_pass unix:/run/php/php7.3-fpm.sock;# # С php-cgi (или други tcp сокети):#fastcgi_pass 127.0.0.1:9000;#}# отказ на достъп до .htaccess файлове, ако коренът на документа на Apache# съвпада с one##location на nginx ~ /\.ht {#deny all;#}}# Конфигурация на виртуален хост например.com## Можете да преместите това в друг файл под sites-available/ и да го свържете символно# към sites-enabled/, за да го активирате.##сървър {#listen 80;# listen [::]:80;##server_name example.com;##root /var/www/example.com;#index index.html;##location / {#try_files $uri $uri/ =404;#} #}

Наистина, като разгледаме информацията, предоставена в този файл, можем да научим много за сървъра Nginx. Ако искате да сте по-компетентни с Nginx, тогава ще искате да получите достъп до ресурсите, предоставени в коментарите.

Целта на тази публикация обаче е да разбере какво прави конфигурацията на виртуален хост (или сървър) на Nginx по подразбиране с нашия сървър. Така че нека се съсредоточим върху това за момента.

От конфигурационния файл можем да видим, че има само един сървърен блок, който не е коментиран. Следователно, това е конфигурационният блок, който Nginx ще приеме.

Първите два некоментирани израза казват на Nginx да слуша мрежови пакети на порт 80 на компютъра, на който работи:

listen 80 default_server;listen [::]:80 default_server;

Първият оператор е за случай на мрежов интерфейс, съдържащ IPv4 адрес, а вторият е за случай на мрежов интерфейс, съдържащ IPv6 адрес. В допълнение към това параметърът default_server посочва, че този сървърен блок ще се използва като конфигурация по подразбиране за Nginx.

След това

root /var/www/html;

казва на Nginx да погледне в директорията /var/www/html на сървъра, за да търси файлове за обслужване на HTTP заявки, насочени към този сървърен блок.

След това,

server_name _;

маркира сървърния блок като "catch all" блок. Всеки път, когато Nginx не може да намери сървърен блок, който да съответства на входяща HTTP заявка, този сървърен блок ще се използва за вземане на решение как да се обслужи тази заявка.

Накрая,

местоположение / {# Първи опит за обслужване на заявка като файл, след това # като директория, след което се върнете към показване на 404.try_files $uri $uri/ =404;}

ще накара Nginx да търси файл в /var/ www/html директория, която да се върне като HTTP отговор за входящата HTTP заявка. В случай, че няма нищо за връщане, Nginx ще върне HTTP отговор със статус 404.

Но как се връща началната страница на Nginx, когато се опитаме да осъществим достъп до главния url? Ако проследите конфигурациите от основния файл, ще видите следната конфигурация:

index index.html index.htm index.nginx-debian.html;

Това ще накара Nginx да върне един от следните файлове в основната директория, ако има такива:

index.htmlindex.htmindex.nginx-debian.html

Тъй като в /var/www/html има файл с име index.nginx-debian.html, съдържанието на файла ще бъде върнато, когато се опитаме да осъществим достъп до коренен url.


PREV: Final Fantasy XIV: A Realm Reborn Сървъри, трансфери и още ...

NEXT: Парти между сървъри

Popular Articles

Hot Articles

Navigation Lists

Back to Top