Step 4 (S-44754)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/14825/step/4

Step 4 (S-44754) 1.png

[00:00 - 00:17] а теперь давайте перейдем к рассмотрению синтаксиса и возможностей конфига сервера а что касается конфига то у всех операторов они естественно различаются различаются сильно а мы для примера выбрали


[00:17 - 00:35] как довольно популярный сервер рунете и например конфига попробуй объяснить общие принципы работы конфигов для веб серверов а


Step 4 (S-44754) 2.png

[00:35 - 00:52] важно прояснить сразу 2 понятия которое используется очень плотно очень часто а это виртуалхост и локейшен виртуалхост эта секция конфига которая отвечает за обработку


[00:52 - 01:10] определенного домен а зачастую вот сервер 1 и тот же of сервером был обрабатываются разные домены даже если прога хоть 1 большое приложение а как правило есть


[01:10 - 01:29] основной основной домен приложения есть специальный домен а зачастую для мобильного устройства есть специальный домен для отдачи статических файлов а есть другие варианты также возможно а кроме того некоторое время назад был довольно распространен так называемый shared хостинг


[01:29 - 01:47] когда на 1 сервере провайдера встречалась просто множество клиентских сайтов они обслуживаются 1 и тем же сервером находились по разным доменам поэтому потребовалось ввести такую вещь как вертихвостка


[01:47 - 02:02] hosta то просто фрагмент конфига сервера отвечающие за 1 конкретный домен а кулаке и шон это секции конфига которая отвечает за обработку набор урлов


[02:02 - 02:20] а с моего сайта может состоять из большого количества разных углов могут тысяч урлов 1000 документов 1000 р а что не имеет смысла каждый а у прописывать как то в отдельности


[02:20 - 02:36] а на практике существует несколько разновидностей документов которые какой то конкретной оф сайт дает а вот такие разновидности группируют по урлам и вот эту группу слов называют локейшн


Step 4 (S-44754) 3.png

[02:36 - 02:54] чтобы прояснить термина давайте посмотрим пример пример конфига nginx а данный конфиг сильно упрощен а возможно даже не запустятся но здесь указаны основные наиболее важные


[02:54 - 03:09] директива основать смотреть начиная сверху а юзер лидеров в здесь указано имя пользователя и группы под которым а буду запущенные процессы


[03:09 - 03:25] то есть фактически будет работать от лица данного пользователя далее указан террор log in log file в которой а вы в сервер будет вмещать сообщения об ошибках и указан


[03:25 - 03:43] уровень ошибок то есть помещать все сообщение информационного или более важных уровней далее идет называемая сексуальность мы видим слова хттп и фигурные скобочки а


[03:43 - 04:02] используются так в си подобный синтаксис в конфиге а что означает сердце оно означает что начинается конфиг именно веб сервера а тут следует провести этот день в общем то позиционируется как универсальная прокси сервер он может быть


[04:02 - 04:17] веб сервером прокси сервером для почтовых серверов то есть для и сыров и может быть сервером для


[04:17 - 04:35] теперь позвольте список каких то customer протокол а здесь отмечено что кто то относится к его ролевой сервер а дальше мы ведем директиву include директива include что включает в файл


[04:35 - 04:50] то есть в это место поставляется содержимое файла указанного окон с моим types а в этом файле в этом файле содержится описание


[04:50 - 05:08] расширение и а типов которые будут соответствовать ну тогда content type указывается тип по умолчанию то есть если не удалось определить какой другой указываются некоторые defaults write а моим все документы от товаров


[05:08 - 05:23] алло формат указывается форматах со слога вы говорили что данная пишется в произвольном виде а в конце слов в определенном формате здесь указывается что можно записывать ip адрес запрос


[05:23 - 05:41] а на свой запрос и статус ответов удачной и удачно произошел 3 а все эти директивы они а уровне всего 1 то есть вот все перечисленное директива они применяются ко всему сервером винкс в целом


[05:41 - 06:00] далее мы видим что начинается секция серверов а вот эта секция то есть виртуалхост то есть все что находится внутри этой секции вот отсюда досюда это виртуалхост а


[06:00 - 06:15] какие директиву есть внутри виртуалхоста важное директивы это server name server name собсна говоря указывается каким доменом данные колхоз соответствовать


[06:15 - 06:35] one example com и www замков ну в общем да то есть 1 кто хочет может обслуживать более 1 домена я был неточен раньше а данный вертол хвост обслуживает например директиву listen указывается


[06:35 - 06:53] а на каком ip адресе порту слушает а слушает данные виртуалхост здесь немножко нетипичное применение здесь указано тоже доменное имя чаще всего здесь указывается конкретный ip адрес и порт


[06:53 - 07:10] 11 правило служит 80 порту поэтому здесь не указан а указывается слог слог позволяет а вам записывать информацию в отдельный файл то есть смотрите


[07:10 - 07:25] 1 и та же деактивация слог оно может быть указано как на уровне виртуалхоста так она может быть указано где нибудь повыше например вот здесь а чем


[07:25 - 07:44] ниже находится директива то есть чем больше в нее вложено сетям а важнее у нее то есть деактивация слог который находится внутри виртуалхоста она перекрыла бы директиву акция слово которое находится а наверху 10 окей


[07:44 - 08:01] а ц слог понятно и а дальше идут так называемый локейшена локейшена представляет собой группу урлов начнем со 2 локейшена мы видим слово локейшн далее специальный символ


[08:01 - 08:17] тильда звездочка и далее регулярные выражения этот локейшен а включает в себя группу слов которые совпадают с данными


[08:17 - 08:36] любовь которая подходит под данное регулярное выражение он принадлежит данному локейшен 2 локейшн задом по другому видите здесь нет этому символу здесь просто указан некоторые префикс а в данном случае префиксов просто слэш


[08:36 - 08:56] соответственно с этим а локейшена совпадает вообще любой уровень ну грубо говоря любой урон который начинается со слова фактически этот бур а таким образом в данном конфиге мы разделили урлы на 2 группы


[08:56 - 09:14] все урлы у которых есть время а джипег либо give и все остальные то есть картинки и все остальное а возникать вопрос допустим у нас есть


[09:14 - 09:32] допустим у нас есть следующий урок слэш 1 give a какому локейшен этот угол относятся формально он совпадает с собой


[09:32 - 09:47] с этим он совпадает по регулярному выражению с этим локейшен он совпадает том что начинается со слова чтобы ответить на этот вопрос мы должны рассмотреть какие вообще бывают


[09:47 - 10:05] способа записи лакей шов рукава приоритета способа записи локейшена в конце гингивит а вариант номер 1 а symbol равно это точное совпадение то есть когда


Step 4 (S-44754) 4.png

[10:05 - 10:24] в точности совпадает с указанной фразой а этот локейшен а задействован то есть локейшен сдается по точному совпадению это вариант номер 1 вариант номер


[10:24 - 10:43] 4 давайте давайте рассматривать в таком порядке вариант номер 4 никакого специального символа не указано написан какой то префикс это совпадение по префиксу если угол начинается с указанного слова то он совпадает с данным локейшен


[10:43 - 11:01] а вариант номер 3 совпадения по регулярному выражению синтаксис такой тильда решетка а если угол а


[11:01 - 11:16] совпадает с рубля ну соответственно подходит под данное локейшен и вариант номер 2 ставим чуть по позже в каком


[11:16 - 11:33] на данном слайде кришна расположенная в порядке приоритета то есть верхний самый приоритетный он проверяется в 1 очередь если совпадение найдено то другие логично даже не проверяется а


[11:33 - 11:48] совпадение по регулярному выражению приоритетнее чем совпадение по префиксу поэтому о нашем прошлом слайде когда мы говорили про деньги которые совпадают с тем и другим обрабатываться он будет локейшена номер 2


Step 4 (S-44754) 5.png

[11:48 - 12:05] потому что совпадение по регулярному выражению приоритетнее таково правило в некоторых случаях можно задать а спать нужно задать совпадение по префиксу но так чтобы оно было более приоритетным чем


Step 4 (S-44754) 6.png

[12:05 - 12:23] для этих случаев используется синтаксис 2 крышка тильда это тоже само сопоставление по префиксу но оно будет приоритетнее чем регулярное выражение


[12:23 - 12:38] а давайте песню например такой урл


[12:38 - 12:57] он будет обрабатываться 1 локейшн потому что есть точное совпадение а 1 локейшен самый приоритетный хотя это же этот совпадает и с 3 и 4 но обрабатываться будет именно 1


[12:57 - 13:15] другой пример 2 сек а дамы уру совпадает с 3 и 4


[13:15 - 13:30] обрабатываться будет 3 потому что 3 совпадение по регулярному выражению более приоритетно так а допустим расширения не jpeg а


[13:30 - 13:47] give данные совпадают только с 4 локейшен будет обрабатываться им и наконец такой угол фиг


[13:47 - 14:03] 1 жпг этот совпадает со 2 и 3 но обрабатываться будет 2 потому что а сопоставления по префиксу вот такого вида


[14:03 - 14:19] ну в общем то правила довольно просты еще раз повторяем 1 это точное совпадение 2 это совпадение по префиксу приоритетное


[14:19 - 14:39] это совпадение по регулярному выражению 4 это совпадение по префиксу неприоритетно если а у вас есть 2 локейшена которые совпадают с данным конфигом такое часто бывает с регулярками то применяется тот локейшен которой


[14:39 - 14:54] находится выше по коду а что значит применяется давайте еще раз ржавчина конфигов здесь важно подчеркнуть следующая особенность конфиг это не программа


Step 4 (S-44754) 7.png

[14:54 - 15:14] программа выполняется сверху вниз а конфиг нет как все это набор опции смотрите он фактически опция состоят из ключей и значений например опция руд вот ее значения а когда


[15:14 - 15:33] приходит во в серверу сначала выбирается некоторой виртуалхост потом внутри виртуалхоста выбирается некоторые локейшен когда локейшен выбран можем построить конкретный набор опций которые будет применен к да


[15:33 - 15:50] то есть будет применена вот эта опция локейшена вот эти опции из а да из виртуалхоста но если быть точнее то лиса на серверной мани не относится к обработке файлов


[15:50 - 16:08] поэтому если будем отмечать а ц слога относится а вот эта опция будет применена из уровне сервера и вот это будет примерно так же будет применена от вот эту опцию с верхнего уровня


[16:08 - 16:25] таким образом когда мы определили верту хост сервер определил необходимый локейшен у него получается плоский список опции которые влияют на обработку конкретного запроса


[16:25 - 16:42] а когда этот список опции сформирован сервер начинает проход по своему цикла а соответственно вот эти опции они будут создавать поведения различных модулей а давайте теперь


Step 4 (S-44754) 8.png

[16:42 - 17:00] еще раз кратко про важные директивы которые встречаются в конфиге а директива серверу это просто контейнер р о ж теперь для конфигов всего сервера а для конфигов всего кто то по сервера


[17:00 - 17:18] сервер это вертол хостинге то есть контейнер для 1 домена server name задает имя домена а с помощью локейшена происходит группировка урлов а то есть выделяются группы слов которые и сервер будет обрабатывать


[17:18 - 17:36] а директива ес они крайне важны они указывают откуда нужно брать файлы а их не мы вернемся чуть позже ну соответственно слог указывают 2 лога log пишется ошибки во все слог


[17:36 - 17:40] зачет прошлого а обработка этого запроса