Apache. Корисні поради, Сервери, Інтернет-технології, статті

пер. Andrei S. Hudyna

Обмеження доступу до файлу

Як правило, Directory застосовується тільки до каталогів. Обмеження доступу до окремих файлів директивою може бути засноване на обмеження доступу до запрошенням URL. Отже це може бути застосовано до окремих файлів. Наприклад, для обмеження доступу до файлу / prices / internal.html для всіх крім ‘Domain.com’, ви можете використовувати



order deny,allow
deny from all
allow from .domain.com

Проблема з NCSA. Htaccess файлами

У підручник NCSA по приводу. Htaccess файлів наведений приклад подібний цьому:


AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName EnterPassword
AuthType Basic


order deny,allow
deny from all
allow from .my.domain

Це призначено для обмеження доступу заснованого на адресу браузера і тут не потрібно запит для авторизації інших користувачів. Проблема в тому що Apache виводить запит для введення пароля, який не проходить, тому що той не був встановлений. В Apache наявність Auth * директив необов’язково. Це правиться видаленням рядків містять Auth *.

Як збільшити швидкість Apache

Имееет деякі шляхи які дозволяють управляти продуктивністюсервера. Один швидкий і ефективний шлях – це зменшення кількості. Htaccess файлів які опитуються при кожному запиті
.

Всякий раз, коли Apache обробляє запит, опитуються файли. Htaccessякі визначають дозвіл доступу і де можуть бути устанавлівлени інші параметри (наприклад AddType).
При цьому перевіряються і обробляє файли. Htaccess в тому ж самому каталозі що і запитуваний файл, а також у всіх батьківських каталогах.
Наприклад, якщо Ви запитуєте URL /docs/about.htmlі Ваш кореневий документ /usr/local/etc/httpd/htdocs, Apache пробує обробляти файли. Htaccess у всіх цих каталогах:

/
/usr
/usr/local
/usr/local/etc
/usr/local/etc/httpd
/usr/local/etc/httpd/htdocs
/usr/local/etc/httpd/htdocs/docs

Зазвичай, вище кореня сервера не буде файлів. Htaccess, але Apache все ще повинен перевірити файлову систему, щоб в цьому переконатися.Це може бути усунуто, використовуючи прийом, що опція AllowOverride встановлена ​​в None, і Apache не буде проводити перевірку для файлів
.htaccess .
Так для каталогу ‘/’ AllowOverride Ви встановите в None і включітьAllowOverride з Вашими необхідними параметрами для каталогу
/usr/local/etc/httpd/htdocs.
Наприклад, наступний код в access.conf прискорив би Apache:

    
AllowOverride None


AllowOverride All

Другий розділ Directory включає AllowOverrides, так, щоб файл. Htaccess були оброблені знову. ‘All’ може бути замінена будь-який інший необхідної для Вас.


Якщо Ви маєте web документи в різних каталогах крім кореня документа, Ви будете повинні включити файли. Htaccess в також і в них (якщо необхідно).Наприклад, якщо Ви використовуєте UserDir, Щоб дозволити доступ дофайлів в домашніх каталогах, Ви будете повинні встановити відповідний AllowOverride (і можливо інші обмеження) подібно цьому:

    
AllowOverride FileInfo Indexes IncludesNOEXEC

Зміна log файлів без завершення транзакцій

Здійснення батьківського процесу USR1 робить закриття поточних log файлів, з подальшим їх відкриттям без втрати з’єднання в даний час в розробці.. Це буде використано замість HUP сигналу в якому-небудь скрипті для зміни log-ів. Цей скрипт повинен буде по перше перейменувати файл поточного логу в файл з новим ім’ям (log залишається відкритим на цій стадії).. Потім він повинен послати сигнал USR1 батьківського процесу Apache. Батьківський процес повинен повідомити дочірнім про завершення після обробки свого поточного запиту і відкрити log файл для нових дочірніх процесів(Так як старі файли були перейменовані, відкриті файли будуть створені заново).Оскільки старі дочірні процеси закінчують їх поточні запити, вони повинні закрити обробники старих log файлів і завершити роботу.Коли всі дочірні процеси померли, Ви можете безпечно обробляти старі log-і (наприклад, стискаючи їх). Так як Ви не можете точно знати коли дочірніпроцеси завершують свою роботу, кращим шляхом є перевести скрипт в режим очікування після посилки сигналу USR1.


Альтернативним шляхом для зміни log-ов є посилка log повідомлень програме за вашим вибором через потоки. Ця програма може вирішити, яким чиномі коли міняти log файли. Програми які можуть бути корисні для цьогодоступні на cronolog(Не входить в Apache).

Використання одного конфігураційного файлу *

Apache починався з використанням трьох різних конфігураційних файлів (Srm.conf, access.conf і httpd.conf). Тим не менше всі вони ідентичні. Таким чином, Вся конфігурація поміщена в один файл – httpd.conf (який читаєтьсяпершим. Цей файл містить директиви

    AccessConfig    /dev/null
ResourceConfig /dev/null
що предотвращаает повідомлення про пропуск srm.conf і access.conf файлів.

Запуск CGI програм з правами інших користувачів

CGI програми завжди запускаютьсяз правами користувача що і Apache сервер. Це встановлюється директивоюUser в конфігураційному файлі, в основному це звичайний користувач, Як наприклад ‘www’, або ‘nobody’.У більшості випадках це достатньо, так як CGI скрипти повинні запускатисяз малими привілеями, щоб виключити небезпеку руйнування системи.Тим не меньше, в деяких випадках потрібно запускати CGI програми з правамиінших користувача. Наприклад:

Здатність для запуску CGI програм з правами інших користувачіввідноситься до ‘running setuid’, після чого файлова система Unix здатна запустити програму з правами інших користувачів. Найбільша проблема з наявністю setuid кошти CGI на web сервері – захист.
Потрібно бути дуже обережним, щоб програма, яка виконує setuid не може бути викликана, для нанесення пошкоджень системі.Наявність setuid програми в системі може бути небезпечно, особливо, якщо б Вине довіряєте всім іншим користувачам в системі (який мав місце б з обома приклад вище). Ризик полягає в тому, що інші користувачі можуть виконувати setuid програму вручну (з командного рядка) і давати команди,які змусять виконати ці небажані дії. Ризик при використанні setuid програм відомий Unix адміністраторам системи, але багато адміністратори мережі не мають так великого досвіду Unix або setuid програмування.

Програма suEXEC включена в Apache надає один з методів для запускуCGI програм з правами інших користувачів.

Ігнорування файлів

Деякі файли, які ймовірно ніколи не повинні запитуватися користувачем: файли, звані. htaccess,. htpasswd, *. pl, * ~ і так далі. Це може бути зроблено, закривши доступ до цих файлів, що використовують розділ
. Наприклад

      
order allow,deny
deny from all

Створення HTML сценаріїв

Легкий шлях для нових можливостей сервера без надто великого програмирования це використання “включаються HTML”. Це закрита сторона сервера, яка дозволяє Вам використовувати змінні, умовні вирази, цикли і так далі.Подібно SSI, ці сценарії виконуютьсяна стороні сервера і працюють з усіма браузерами. Ці додаткові включенняв HTML сценарії знову доступні: SSI (частина Apache);
NeoScript (Прілінковандо apache як модуль);
PHP.

Примусове виконання обробників або mime типів

Нові вимоги були додані, щоб змусити всі файли в зазначеному каталозі бути обробленими даними обробником, або бути повернутим з вказаним типом.Щоб встановлювати обробник, використовуйте
SetHandler, І встановлюйте mime тип використовуючи ForceType.

Зверніть увагу, що ці директиви змушують даний тип або обробник застосовуватися до всіх файлів в розділі, незалежно від розширення, що відображає правила.


Наприклад, каталог може використовувати “ForceType applicaton / octet-stream” в. Htaccess щоб передати браузерувідомості, що файл потрібно зберегти, а не спробувати відобразити на екрані.
Або, всі файли в каталозі можуть бути оброблені як програми CGI

    
SetHandler cgi-script

Швидкі Питання


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*