Чистые урлы и настройка Nginx для Эгеи

С недавнего времени я использую для своих и клиентских сайтов хостинг ElasticWeb. Это хостинг с оплатой за ресурсы, где стоимость формируется только от нагрузки. Разместить сайт с трафиком 500 человек в сутки можно меньше 1$ в месяц. Для меня это очень выгодные условия. Поэтому здесь я захостил свой блог на Эгее. В качестве веб-сервера установлен Nginx c базовой конфигурацией. Этого хватает для работы Эгеи, но есть одна проблема: по умолчанию урлы будут иметь конструкцию /?go=tags/php/. Для того чтобы получить урлы без ?go= нужно в файле /system/default/config.php найти переменную $_config['url_composition'] и установить значение synthetic.

<?php

// use beautiful (synthetic) or ?parametrised (real) urls
$_config['url_composition'] = 'synthetic';

После чего необходимо сбросить кеш Эгеи перейдя по ссылке /?go=@sync/. Теперь движок понимает, что от него требуется, но урлы типа /tags/php/ ещё работать не будут, поскольку не настроен редирект на уровне конфига Nginx, а базовых настроек не достаточно. В репозитории хостера выложена коллекция Nginx-конфигов для разных фреймворков и CMS, но настроек для Эгеи нет. Пример в документации к блогу требует небольшой адаптации к ElasticWeb, то есть копипастом проблему решить не получится. В результате небольших экспериментов у меня чистые урлы заработали со следующими настройками веб-сервера:

root /home/{username}/domains/{parent_domain};

location / {
  index index.php;
  try_files $uri $uri/ /index.php?go=$uri;
  log_not_found off;
}

location ~* \.(jpg|jpeg|png|gif|ico|css|js|html|htm)$ {
  expires 30d;
  access_log off;
}

location ~ \.php$ {
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  include fastcgi_params;
  fastcgi_param SCRIPT_FILENAME $request_filename;
  fastcgi_intercept_errors on;
  fastcgi_pass unix:/var/run/php5-{domain}.sock;
}

location ~ /\.ht {
  deny all;
}

location ~ /\.psa {
  deny all;
}

Возможно в будущем хостер внесёт конфиг в свой репозиторий и настроить Эгею можно будет в один клик. Сейчас, если вы хотите дальше разобраться как устроен Nginx, посмотрите другие полезные шаблоны конфигурации или почитайте документацию веб-сервера.

Поделиться
Отправить
Популярное