From c26fa79c428aa692750bf3606b400731cfd6775b Mon Sep 17 00:00:00 2001 From: Syndamia Date: Mon, 23 Dec 2024 20:00:05 +0200 Subject: referat(WT): Add configuration options syntax and a dozen values --- Year 4/Web technologies/referat/css/style.css | 4 + Year 4/Web technologies/referat/referat.html | 124 ++++++++++++++++++++++++++ 2 files changed, 128 insertions(+) diff --git a/Year 4/Web technologies/referat/css/style.css b/Year 4/Web technologies/referat/css/style.css index 21a3160..0705589 100644 --- a/Year 4/Web technologies/referat/css/style.css +++ b/Year 4/Web technologies/referat/css/style.css @@ -126,3 +126,7 @@ pre > code { ol.sources > li::before, sup a, sup a:visited { color: var(--level4); } + +dt:not(:first-child) { + margin-top: 1em; +} diff --git a/Year 4/Web technologies/referat/referat.html b/Year 4/Web technologies/referat/referat.html index 45fb1d5..868a4ee 100644 --- a/Year 4/Web technologies/referat/referat.html +++ b/Year 4/Web technologies/referat/referat.html @@ -290,6 +290,130 @@ По-значимо, вторият описва модулите които са налични и са активни. При модулите допълнително имаме подразделение на два типа файлове: единия завършващ на .load, описващ редовете, които вмъкват този модул; и другият завършващ на .conf, под който се съдържат конфигурации на самия модул.[17]

+

+ Apache със своета близко до 30-години разработка, предлага стотици опции (над 700 в най-новата си версия)! + Въпреки това, нужно е да се знаят само една дузина за създаване на сложни и високо-способни конфигурации. +

+
+

Синтаксис

+

+ Съществуват два типа опции в един конфигурационен файл, които ще наречем: +

    +
  1. + Примитивни, приличащи на извикване на команди: + +
    Require all denied
    +
    Options +Includes
    +
    ErrorDocument 403 "Sorry, can't allow you access today"
    +
    Require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
    +
  2. +
  3. + Композитни, приличащи на HTML маркиране и съдържащи примитивни и други композитни: + +
    <Directory "/">
    +    AllowOverride None
    +</Directory>
    +
    <Limit POST PUT DELETE>
    +    Require valid-user
    +</Limit>
    +
    <VirtualHost 192.168.1.1 172.20.30.40>
    +    ServerName server.example.com
    +    ServerAlias server
    +
    +    <Directory /var/www/example_com>
    +        Options Indexes FollowSymLinks
    +        AllowOverride All
    +        Require all granted
    +    </Directory>
    +</VirtualHost>
    +
  4. +
+

+

+ По конвенция, името на дадена опция е в PascalCase (Require, Directory, ...), но конкретно как изглеждат аргументи се определя от разработчика на опцията. +

+
+
+

Глобални примитивни опции

+
+
Timeout [Цяло число (секунди)]
+
Определя колко време Apache ще изчака за изпълнение на дадена заявка. По подразбиране е 60 секунди.
+
KeepAlive [Оn или Off]
+
Позволява на един клиент (браузър) да поддържа връзка със сървъра, по която да прекарва няколко заявки. Ако е изключена, на всяка заявка ще трябва да се установи наново връзка. По подразбиране е "On"
+
KeepAliveTimeout [Цяло число (милисекунди)]
+
Колко време да се изчака между изпращане на две заявки по една връзка, преди връзката да се прекрати. По подразбиране е 5 милисекунди.
+
MaxKeepAliveRequests [Цяло число (бройка)]
+
Максималния брой заявки, които могат да се направят по една връзка преди връзката да се затвори. Ако е 0, неограничен брой заявки са позволени! По подразбиране е 100.
+
+
+
+

Опции за виртуални хостове

+
+
<VirtualHost [адрес:порт адрес:порт ...]>
+
+ Определя един виртуален хост, който се достъпва на даденият(ите) адрес(и). + +
<VirtualHost 10.1.2.3:80>
+    ...
+</VirtualHost>
+
+
+

+ Останалите опции се вписват в VirtualHost: +

+
+
ServerName [URL адрес]
+
+ Свързва адресът към който заявката е изпратена, т.е. URL-ът от който браузърът се цели да изтегли уебстраници. + +
ServerName www.example.com
+
+
ServerAlias [Имена на хостове]
+
+ Позволява алтернативни хост имена за ServerName. Особено полезно в ситуации в които няколко виртуални хоста имат еднакви сървърни имена. Приема само името на хоста, не приема порт, IP адреси, ... + +
ServerAlias server server2.example.com server2
+
+
DocumentRoot [Път към директория]
+
+ Определя директорията в която се съдържат уебстраниците, достъпни през дадения виртуален хост. + +
DocumentRoot "/var/www/example_site"
+
+
Alias [URL път] [Път към директория/файл]
+
+ Позволява достъпването на файлове/директории, които се намират извън DocumentRoot. + +
Alias "/image" "/ftp/pub/image"
+
+
<Directory [Път към директория]>
+
+ Слага/вдига ограничения към директория (и нейнитя под-файлове и под-директории). Най-често Apache има свободен достъп към само една предопределена директория (посочена по време на компилация). За всички останали, освен че трябва да има нужните файлови разрешения във файловата система, трябва и да се постави тази директива. + +
<Directory "/usr/local/httpd/htdocs">
+    ...
+</Directory>
+ + Най-простата (и опасна) примитивна опция, която може да приеме, е Require all granted, която позволява безусловен достъп към директорията. Останалите (десетки) опции и аргументи няма да бъдат разглеждани. +
+
Redirect [Статус] [URL път] [URL адрес]
+
+ Създава пренасочване от стар URL път към нов URL адрес. Така се позволява пренасочванията да бъдат към страница в същия виртуален хост/сървър или към друг напълно различен. Стойността на [Статус] може да бъде една от: + +
    +
  • permanent (статус код 301)
  • +
  • temp (статус код 302)
  • +
  • seeother (статус код 303)
  • +
  • gone (статус код 410)
  • +
+ + Позволено е и да се изпусне, в чийто случай ще се зачете за temp. Ако се избере gone, последния аргумент не трябва да се подаде. + +
Redirect "/service" "http://foo2.example.com/service"
+
Redirect "/one" "/two"
+
+
+

Източници

-- cgit v1.3.1-26-gb76a