Назад | Перейти на главную страницу

Как включить функцию перезаписи в nginx 1.0.5?

Недавно я установил 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, стоит приложить минимальные усилия для его восстановления.