Как называется и где находится файл конфигурации Nginx (эквивалент htaccess)?

30

Существует множество руководств по написанию правил перезаписи Nginx для имитации файла .htaccess в Apache, но я не могу с уверенностью сказать, что знаю, как называется или называется этот так называемый конфигурационный файл Nginx. Я специально ищу конфигурационный файл Nginx, который позволяет вам писать путь к серверу и директивы PHP. Я использую Ubuntu 12 linux и Codeigniter в качестве своего PHP фреймворка.

Вот что я знаю до сих пор:

  1. Этот файл: /etc/nginx/nginx.confнесмотря на его заманчивое имя, очевидно, не место для директив сервера.
  2. Этот файл: /etc/nginx/sites-available/defaultкажется, что мне нужно (я могу генерировать ошибки php, специфичные для моего приложения), но я не могу получить правильную маршрутизацию пути, специфичную для Codeigniter. Прежде всего, является ли этот файл «config» / .htaccess эквивалентом, о котором все говорят?
тим петерсон
источник
Ваша проблема не с языком PHP (т.е. программированием на PHP), а с конфигурацией PHP на конкретном сервере, которая объясняет полностью действительные голоса при закрытии. Я не могу комментировать последнюю часть вашего поста, поскольку она кажется очень субъективной и предвзятой.
nickb
1
Вы можете найти, где находится конфигурация nginx, используя nginx -Vкоторую вы можете найти в руководстве с помощью man nginx. -VОпция документирована как «-V Вывести версию Nginx, компилятор версии и параметры сценария конфигурации.». Если nginxего нет в вашем пути, используйте which nginxкоторого возвращает полный путь к nginx$(which nginx) -V
bucabay

Ответы:

28

Я использую PHP с nginx на моем сервере разработки со следующей конфигурацией:

  1. в /etc/nginx/nginx.confя добавил: include /etc/nginx/sites-enabled/*;до последнего }.

  2. выполните следующие команды для создания конфигурации вашего сайта:

    mkdir /etc/nginx/sites-available/
    mkdir /etc/nginx/sites-enabled/
    cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/<site>
    
  3. отредактируйте конфигурацию сайта, некоторые возможные конфигурации (это то, что я упоминал в моей настройке): http://kbeezie.com/view/nginx-configuration-examples/

  4. ссылка на доступный сайт, чтобы включить его

    ln -s /etc/nginx/sites-available/<site> /etc/nginx/sites-enabled/<site>
    
  5. имейте в виду, что вы можете включать файлы в конфигурации практически в любом месте, это упрощает создание нескольких сайтов, когда вы хотите объединить одинаковые конфигурации.

Да, .htaccess можно сравнить с server{}блоком в nginx, но они также очень разные. У nginx гораздо более простой подход к разбору конфигурации, и он не будет сканировать каталоги сайтов на предмет дополнительной конфигурации, только то, что видит nginx.conf.

abestic9
источник
- @ Андрей, спасибо большое за полезную информацию! По умолчанию мой /etc/nginx/nginx.confфайл уже есть include /etc/nginx/sites-enabled/*;в самом конце. Похоже, эти 2 файла разговаривают друг с другом на моем сервере, и теперь я имею дело с проблемами, связанными с Codeigniter. Вы используете codeigniter? Есть некоторая странность пути, с которой мне нужно справиться ...
Тим Петерсон
Я использую свой собственный фреймворк, который довольно похож (хотя и более примитивен) на CodeIgniter. В данный момент я пытаюсь преобразовать мои правила регулярного выражения mod_rewrite в модуль HttpRewrite nginx. Моим первым крупным прорывом было преодоление ошибок 403/404, отображаемых nginx, когда я неправильно настроил rootпараметр. Не стесняйтесь проверять мои вопросы, если вам нужно вдохновение.
abestic9
Спасибо за совет по проверке ваших вопросов. Я думаю, что теперь я понимаю больше, спасибо за то, что поставили меня на путь ...
Тим Петерсон