Налаштування Nginx для Wordpress-сайту, Techlist

Доброго часу доби читачі та гості мого блогу. У цій статті ми продовжимо налаштовувати Nginx та напишемо конфігурацію для майбутнього сайту на основі WordPress. З попередньою статтею можна ознайомитись тут.
Під час встановлення Nginx було створено набір каталогів розміщувати конфігураційних файлів. Зараз нас цікавлять наступні каталоги: /etc/nginx/site - enabled і /etc/nginx/sites - available.
У каталозі /etc/nginx/sites-available створимо файл test, у якому буде задана конфігурація майбутнього сайту.
Ті, хто уважно читав попередню статтю, можуть помітити, що файл test створений у каталозі sites-available, а в nginx.conf був підключений каталог sites-enabled. Отже, створимо символічне посилання на файл test у каталозі /etc/nginx/sites-enabled, таким чином ми включимо файл у конфігурацію сервера.
У другому блоці server <> пропишемо редирект з www на основний домен. Якщо у вас є доменне ім'я виду test.com, то будьте впевнені, що завжди знайдеться якийсь розумник, який додасть до нього на початок www. Якщо не додати редирект у конфігурацію сайту, такі люди не зможуть потрапити на нього.
Додамо третій блок server <>, в якому буде знаходитися все, що залишилося.
Почнемо із вказівки порту, який слухатиме сервер. За замовчуванням це 80 порт.
Вкажемо доменне ім'я сайту, наприклад я використовую test.com.
Додамо кореневу директорію сайту та тип індексного файлу.
Основна частина майже готова, вже в такому вигляді сервер може обслуговувати прості сайти на html, тільки тоді index.php потрібно буде замінити на index.html.
Але оскільки сайт буде працювати на WordPress, необхідно додати набір деякихопцій та правил, згідно з WordPress-документацією для Nginx.
Оскільки я не люблю кашу в конфігураційних файлах і мені подобається коли все розкладено на свої місця, то наступні опції я підключатиму додатковими файлами, через include. Такий спосіб зручний і практичний, одного разу написаний файл може включатися до інших сайтів, суттєво заощаджуючи час написання конфігів.
Створимо два додаткові файли в каталозі /etc/nginx/conf.
Підключимо створені файли всередині третього блоку server <, відразу після лог-файлів. Подібне підключення виконується там, де воно прописане і рівносильне запису всередині самого блоку. Файли повинні включатися до такої послідовності.
Готовий файл test виглядає так.
restrictions. conf
Додаємо вміст у restrictions.conf.
Трохи полегшимо роботу сервера, знизивши на нього навантаження. Не будемо відзначати запити до файлів favicon.ico і robots.txt у логах доступу. Також не станемо фіксувати 404 помилку у разі їх відсутності.
Трохи убезпечимо роботу сервера шляхом заборони доступу до прихованих файлів та заборони виконання php-файлів у директорії uploads.
* / (?: uploads files) /. * \. php $
* / (?: uploads files) /. * \. php $
wordpress.conf
Додаємо вміст у wordpress.conf.
Насамперед встановимо правило обробки вхідних запитів та подальшої їх передачі на обробку PHP. Працює воно приблизно так. Всі запити, що надходять до сервера, повинні передаватися на обробку PHP/Wordpress, але якщо запит звернений до конкретного файлу існуючого на сервері, такий файл слід віддати самостійно, не вдаючись до допомоги PHP.