diff options
| Commit | c26fa79c428aa692750bf3606b400731cfd6775b (patch) | |
|---|---|---|
| Author | 2024-12-23 20:00:05 +0200 | |
| Committer | 2024-12-23 20:00:05 +0200 | |
| Files | 3439d29585f880ac60f1baa8caf835af27bb3443 | |
| uni-projects-c26fa79c428aa692750bf3606b400731cfd6775b.tar uni-projects-c26fa79c428aa692750bf3606b400731cfd6775b.tar.gz uni-projects-c26fa79c428aa692750bf3606b400731cfd6775b.zip | ||
| Parent | f9bd4f8a4d965ba657fe420ea19a55049daf95b5 (diff) | |
referat(WT): Add configuration options syntax and a dozen values
2 files changed, 128 insertions, 0 deletions
| -rw-r--r-- | Year 4/Web technologies/referat/css/style.css | 4 | ||||
| -rw-r--r-- | Year 4/Web technologies/referat/referat.html | 124 |
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 @@ По-значимо, вторият описва модулите които са налични и са активни. При модулите допълнително имаме подразделение на два типа файлове: единия завършващ на <code>.load</code>, описващ редовете, които вмъкват този модул; и другият завършващ на <code>.conf</code>, под който се съдържат конфигурации на самия модул.<sup><a href="#src17">[17]</a></sup> </p> + <p> + Apache със своета близко до 30-години разработка, предлага стотици опции (над 700 в най-новата си версия)! + Въпреки това, нужно е да се знаят само една дузина за създаване на сложни и високо-способни конфигурации. + </p> + <section> + <h3>Синтаксис</h3> + <p> + Съществуват два типа опции в един конфигурационен файл, които ще наречем: + <ol> + <li> + Примитивни, приличащи на извикване на команди: + + <pre><code>Require all denied</code></pre> + <pre><code>Options +Includes</code></pre> + <pre><code>ErrorDocument 403 "Sorry, can't allow you access today"</code></pre> + <pre><code>Require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example</code></pre> + </li> + <li> + Композитни, приличащи на <code>HTML</code> маркиране и съдържащи примитивни и други композитни: + + <pre><code><Directory "/"> + AllowOverride None +</Directory></code></pre> + <pre><code><Limit POST PUT DELETE> + Require valid-user +</Limit></code></pre> + <pre><code><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></code></pre> + </li> + </ol> + </p> + <p> + По конвенция, името на дадена опция е в PascalCase (<code>Require</code>, <code>Directory</code>, ...), но конкретно как изглеждат аргументи се определя от разработчика на опцията. + </p> + </section> + <section> + <h3>Глобални примитивни опции</h3> + <dl> + <dt><code>Timeout [Цяло число (секунди)]</code></dt> + <dd>Определя колко време Apache ще изчака за изпълнение на дадена заявка. По подразбиране е 60 секунди.</dd> + <dt><code>KeepAlive [Оn или Off]</code></dt> + <dd>Позволява на един клиент (браузър) да поддържа връзка със сървъра, по която да прекарва няколко заявки. Ако е изключена, на всяка заявка ще трябва да се установи наново връзка. По подразбиране е "On"</dd> + <dt><code>KeepAliveTimeout [Цяло число (милисекунди)]</code></dt> + <dd>Колко време да се изчака между изпращане на две заявки по една връзка, преди връзката да се прекрати. По подразбиране е 5 милисекунди.</dd> + <dt><code>MaxKeepAliveRequests [Цяло число (бройка)]</code></dt> + <dd>Максималния брой заявки, които могат да се направят по една връзка преди връзката да се затвори. Ако е 0, неограничен брой заявки са позволени! По подразбиране е 100.</dd> + </dl> + </section> + <section> + <h3>Опции за виртуални хостове</h3> + <dl> + <dt><code><VirtualHost [адрес:порт адрес:порт ...]></code></dt> + <dd> + Определя един виртуален хост, който се достъпва на даденият(ите) адрес(и). + + <pre><code><VirtualHost 10.1.2.3:80> + ... +</VirtualHost></code></pre> + </dd> + </dl> + <p> + Останалите опции се вписват в <code>VirtualHost</code>: + </p> + <dl> + <dt><code>ServerName [URL адрес]</code></dt> + <dd> + Свързва адресът към който заявката е изпратена, т.е. URL-ът от който браузърът се цели да изтегли уебстраници. + + <pre><code>ServerName www.example.com</code></pre> + </dd> + <dt><code>ServerAlias [Имена на хостове]</code></dt> + <dd> + Позволява алтернативни хост имена за <code>ServerName</code>. Особено полезно в ситуации в които няколко виртуални хоста имат еднакви сървърни имена. Приема <b>само</b> името на хоста, не приема порт, IP адреси, ... + + <pre><code>ServerAlias server server2.example.com server2</code></pre> + </dd> + <dt><code>DocumentRoot [Път към директория]</code></dt> + <dd> + Определя директорията в която се съдържат уебстраниците, достъпни през дадения виртуален хост. + + <pre><code>DocumentRoot "/var/www/example_site"</code></pre> + </dd> + <dt><code>Alias [URL път] [Път към директория/файл]</code></pre></dt> + <dd> + Позволява достъпването на файлове/директории, които се намират извън <code>DocumentRoot</code>. + + <pre><code>Alias "/image" "/ftp/pub/image"</code></pre> + </dd> + <dt><code><Directory [Път към директория]></code></pre></dt> + <dd> + Слага/вдига ограничения към директория (и нейнитя под-файлове и под-директории). Най-често Apache има свободен достъп към само една предопределена директория (посочена по време на компилация). За всички останали, освен че трябва да има нужните файлови разрешения във файловата система, трябва и да се постави тази директива. + + <pre><code><Directory "/usr/local/httpd/htdocs"> + ... +</Directory></code></pre> + + Най-простата (и опасна) примитивна опция, която може да приеме, е <code>Require all granted</code>, която позволява безусловен достъп към директорията. Останалите (десетки) опции и аргументи няма да бъдат разглеждани. + </dd> + <dt><code>Redirect [Статус] [URL път] [URL адрес]</code></pre></dt> + <dd> + Създава пренасочване от стар URL път към нов URL адрес. Така се позволява пренасочванията да бъдат към страница в същия виртуален хост/сървър или към друг напълно различен. Стойността на <code>[Статус]</code> може да бъде една от: + + <ul> + <li><code>permanent</code> (статус код 301)</li> + <li><code>temp</code> (статус код 302)</li> + <li><code>seeother</code> (статус код 303)</li> + <li><code>gone</code> (статус код 410)</li> + </ul> + + Позволено е и да се изпусне, в чийто случай ще се зачете за <code>temp</code>. Ако се избере <code>gone</code>, последния аргумент не трябва да се подаде. + + <pre><code>Redirect "/service" "http://foo2.example.com/service"</code></pre> + <pre><code>Redirect "/one" "/two"</code></pre> + </dd> + </dl> + </section> </section> <section id="sources"> <h2>Източници</h2> |
