Налаштування профілів сторінок помилок apache в ubuntu

Розміщення серверів в надійних дата-центрах Європи. Відкрийте хмарний VPS / VDS сервер на швидких SSD за 1 хвилину!

Кращий хостинг:
- захистить дані від несанкціонованого доступу в охоронюваному європейському ЦОДі
- прийме оплату хоч в bitcoin.
- дозволить поставити свій дистрибутив

- захист від DDos-атак
- безкоштовний backup
- Uptime 99,9999%
- ЦОД - TIER III
- провайдер - TIER I

Підтримаємо російською мовою 24/7/365 Працюємо з юрособами і фізособами. Вам прямо зараз потрібно 24 ядра і 72 Gb RAM. Будь ласка!

Наші вигідні тарифи доведуть, що дешевий хостинг ви ще не знали!

Хвилинна справа: виберіть конфігурацію, оплатіть і CMS на VPS готова.
Money Back - 30 днів!

Банківськими картами, електронною валютою, через термінали Qiwi, Webmoney, PayPal, Новоплат і ін.

Задайте питання в службу підтримки 24/7/365

Знайдіть відповіді в нашій базі і познайомтеся з рекомендаціями

Apache - найпопулярніший в світі веб-сервер; багатофункціональний і гнучкий, він постійно підтримується командою фахівців.

При проектуванні веб-сторінок часто виникає необхідність налаштувати кожну з них в індивідуальному порядку. Це стосується і сторінок помилок, які з'являються в разі, якщо запитуваний контент з якої-небудь причини недоступний. У цьому керівництві показано, як налаштувати Apache для відображення користувальницьких сторінок помилок в системі Ubuntu 14.04.

вимоги

Для виконання даного керівництва потрібен користувач з привілеями sudo. Щоб налаштувати таку обліковий запис користувача, зверніться до цього керівництву. Крім того, потрібно попередньо встановити Apache; докладні інструкції по установці можна знайти тут.

Створення користувальницької сторінки помилок

Спочатку потрібно створити призначені для користувача сторінки помилок.

Примітка. Для тестування можна використовувати наступний код без змін. Щоб створити свою сторінку помилок, просто замініть текст в echo в наведеному нижче коді.

Сторінки помилок будуть зберігатися в каталозі / var / www / html - стандартному каталозі document root веб-сервера Apache. Для прикладу створіть сторінку помилки 404 (по імені custom_404.html) і загальну сторінку для помилок 500 (custom_50x.html).

echo "

Error 404: Not found :-(

"| Sudo tee /var/www/html/custom_404.html
echo "

I have no idea where that file is, sorry. Are you sure you typed in the correct URL?

"| Sudo tee -a /var/www/html/custom_404.html
echo "" | sudo tee /var/www/html/custom_50x.html
echo "

We seem to be having some technical difficulties. Hang tight.

"| Sudo tee -a /var/www/html/custom_50x.html

Отже, тепер на сервері є дві сторінки помилок.

Налаштування Apache для відображення користувальницьких сторінок помилок

Тепер потрібно налаштувати Apache для підтримки щойно створених сторінок в разі виникнення відповідної помилки. У каталозі / etc / apache2 / sites-enabled відкрийте файл віртуального хоста. У керівництві використовується стандартний файл хоста 000-default.conf, але ви можете працювати з одними хостами.

sudo nano /etc/apache2/sites-enabled/000-default.conf

Направте Apache на відповідні сторінки помилок.

Для того щоб зв'язати кожен тип помилки зі спеціальною сторінкою, використовуйте директиву ErrorDocument. Це можна зробити в файлі хоста. В цілому, потрібно просто вказати код стану HTTP для кожної сторінки, і тоді сторінка з'явиться на екрані в разі виникнення зазначеної помилки.

В даному випадку настройки будуть виглядати так:

/etc/apache2/sites-enabled/000-default.conf

ServerAdmin webmaster @ localhost
DocumentRoot / var / www / html
ErrorLog $ / error.log
CustomLog $ / access.log combined
ErrorDocument 404 /custom_404.html
ErrorDocument 500 /custom_50x.html
ErrorDocument 502 /custom_50x.html
ErrorDocument 503 /custom_50x.html
ErrorDocument 504 /custom_50x.html

Цього коду досить для настройки обслуговування сторінок помилок.

Однак рекомендується додати ще один блок конфігурацій, щоб клієнти не могли запитувати сторінки помилок безпосередньо. Це запобіжить плутанину (наприклад, запитана безпосередньо сторінка помилки буде повідомляти користувачу про помилку, навіть якщо код стану - 200 (Success)).

Щоб налаштувати таку поведінку веб-сервера, потрібно додати блок Files для кожної користувальницької сторінки помилок. Також потрібно перевірити, чи встановлена ​​змінна оточення REDIRECT_STATUS; вона повинна бути встановлена, тільки якщо директива ErrorDocument обробляє запит. Якщо змінна оточення порожня, сервер буде обслуговувати сторінку 404:

/etc/apache2/sites-enabled/000-default.conf

.
ErrorDocument 404 /custom_404.html
ErrorDocument 500 /custom_50x.html
ErrorDocument 502 /custom_50x.html
ErrorDocument 503 /custom_50x.html
ErrorDocument 504 /custom_50x.html


RedirectMatch 404 ^ / custom_404.html $




RedirectMatch 404 ^ / custom_50x.html $


Коли сторінки помилок запитуються клієнтами, виникає помилка 404, тому що змінна середовища не встановлена.

Тестування сторінки помилок 500

Перевірити роботу сторінки помилок 404 дуже просто: достатньо запросити будь-неіснуючий контент. Але щоб протестувати сторінок помилок 500, потрібно створити фіктивну директиву ProxyPass.

Додайте директиву ProxyPass в кінець конфігураційного файлу. Надішліть запити для / proxytest на порт 9000 локальній машині (на цьому порте не запущене жодного сервісу):

Збережіть і закрийте файл.

Потім включите модулі mod_proxy і mod_proxy_http:

sudo a2enmod proxy
sudo a2enmod proxy_http

Тестування сторінок помилок

Перевірте конфігураційний файл на наявність помилок:

sudo apache2ctl configtest

Якщо команда виявила будь-які помилки, виправте їх. А після перезапуску Apache:

sudo service apache2 restart

На екрані повинна з'явитися сторінка 404:

Error 404: Not found :-(
I have no idea where that file is, sorry. Are you sure you typed in the correct URL?

Відкрийте фіктивний proxypass, щоб перевірити роботу сторінки 500 (на екрані повинен з'явитися код стану 503 service unavailable):

Якщо все було виконано правильно, на екрані з'явиться:

Oops! Something went wrong.
We seem to be having some technical difficulties. Hang tight.

Після тестування видаліть фіктивну директиву з конфігурацій Apache. Також потрібно відключити модулі proxy:

sudo a2dismod proxy
sudo a2dismod proxy_http

На завершення перезапустіть веб-сервер:

sudo service apache2 restart

висновок

Отже, тепер на сайті є унікальні сторінки помилок. Призначені для користувача сторінки помилок - це відмінний спосіб допомогти відвідувачам зрозуміти, в чому справа, надати їм всю необхідну інформацію про помилку і корисні посилання (не забудьте переконатися, що посилання працюють навіть в разі виникнення помилок).

Схожі статті