Недавно я установил nginx 1.0.5 с php fpm, php apc и postgres. Я просто хочу поиграть с nginx и узнать, как настроить основные вещи. Для расширенного тестирования я решил установить PHPBB3 (все прошло хорошо), чтобы проверить, работает ли доступ PHP + Postgres.
Теперь я хочу узнать, как работает перезапись URL-адресов, и уже выяснил, что перезапись должна быть записана в разделе местоположения в конфигурации nginx.
Но, к сожалению, nginx игнорирует каждое правило перезаписи, которое я помещаю в конфигурацию. Итак, мне интересно, нужно ли мне сначала как-то включить функцию перезаписи?
nginx -V |grep rewrite
ничего не показывает, тем более что установка nginx-extras не помогла. Я просто надеялся, что nginx-extras содержит что-то вроде модуля перезаписи, но, к сожалению, это не так.
Поиск serverfault.com и google не помог. Итак - что мне делать? :\ Любая помощь высоко ценится.
PS: Все пакеты были установлены с помощью apt-get install в Debian 6.
Изменить: отрывок из моей конфигурации nginx vhost ниже:
server {
listen 80;
server_name domain.org www.domain.org;
access_log /var/log/nginx/domain.access_log;
error_log /var/log/nginx/domain.error_log;
rewrite_log on;
events {
debug_connection <my ip>;
}
[...]
rewrite
модуль встроен в компиляцию. Я предлагаю тебе включить rewrite_log
чтобы увидеть, что происходит.
Я следовал инструкциям здесь о том, как настроить правила перезаписи, и они работали, но сначала это немного сбивало с толку:
http://wiki.nginx.org/HttpRewriteModule#rewrite
Одна вещь, которую я настоятельно рекомендую, - убедиться, что в вашей сборке nginx есть debug_connection:
http://wiki.nginx.org/EventsModule#debug_connection
Включение этого параметра для вашего тестового IP-адреса и последующее выполнение запросов выводит весь процесс принятия решения nginx в журнал ошибок. Это самый полезный инструмент диагностики, который я когда-либо использовал на любом веб-сервере. Он сообщит вам, что именно произошло с вашим правилом перезаписи, если оно не совпадает, или правило было недействительным, или полностью пропущено. Если apt-get не поддерживает debug_connection, стоит приложить минимальные усилия для его восстановления.