Підтримка nginx для .htaccess / переписувати правила? Відмінності від Apache?


16

Я працюю з http-серверами Apache досить довгий час, і, нарешті, переходжу до серверів статичного контенту поряд з іншими машинами, що динамічно налаштовані.

Мені було цікаво, чи підтримує nginx файли ".htaccess" та такі речі, як mod_rewrite?

Оскільки я дуже звик до синтаксису, мені було цікаво, що таке (синтаксичні) відмінності, і що крива навчання схожа на перехід від конфігурацій Apache до nginx.

Відповіді:


15

Синтаксис переписування nginx набагато чистіший, ніж аналог у mod_rewrite:

правило mod_rewrite:

 RewriteRule ^[a-z0-9_-]*-f([0-9]+)/?(p([0-9]+)\.html)?$ /viewforum.php?f=$1&start=$3 [QSA,L,NC]

Стає в nginx:

rewrite ^/[a-z0-9_-]*-f([0-9]+)/?(p([0-9]+)\.html)?$ /viewforum.php?f=$1&start=$3 last;

Але ніякої підтримки .htaccess ...

Редагувати: ще один приклад того, як підтримувати http://example.com/~username/ urls у nginx:

location ~ /~([a-zA-Z0-9]*)/(.*) {
    root /home/;
    autoindex on;
    index index.html;
    rewrite ^/~([a-zA-Z0-9]*)/(.*)$ /$1/www/$2 break;
}

5

nginx забезпечує функцію перезапису, перевірте NginxHttpRewriteModule

Що ви хочете зробити з .htaccess? Ви можете налаштувати nginx для базової автентифікації за допомогою NginxHttpAuthBasicModule, але директиви конфігурації AFAIK можна зберігати лише в nginx.conf


2
По суті, мені було цікаво про налаштування для кожного каталогу. Я зараз піду на ФМ. =)
анонімний боягуз

4

Здається, що у nginx є еквівалент mod_rewrite, і тут можна знайти документацію . Я сам не використовував nginx, але документація виглядає як конфігурація зовсім інша, але це не повинно бути надто важким, щоб зрозуміти, що це робить. Здається, у вікі є маса прикладів.

Я не можу відповісти, чи можна мати файли конфігурації для каталогу, як ви можете, з апашем. Мене не здивувало б, якщо ви могли, тому що люди очікували цього від використання апаша.


0

NGINX підтримує конфігурації в багатьох файлах через директиву "включати". В основному він завантажує підконфігурацію і ставить її на місце. Він також підтримує джокер-символів, тому легко завантажити багато з них за один кадр.

Єдине обмеження (на мою думку) полягає в тому, що вам потрібно перезавантажити, коли змінена конфігурація. Тому будь-якому користувачеві, який має частину конфігурації, можуть знадобитися права для перезавантаження nginx config:

/etc/ini.d/nginx force-reload (у центсах)

Я не знаю, чи є спосіб уникнути цього чи зробити це по-іншому, тому що я використовую NGINX на багатьох серверах з великою кількістю моїх додатків (віртуальних хостів). Це означатиме, що NGINX не ідеально підходить для спільного хостингу.

Тим не менш, я дуже люблю NGINX, тому що конфігурація є настільки розбірливою, ніж бридкий XML-файл. Гадаю, питання смаку. Інший хороший момент, очевидно, швидкість, якщо це важливо у вашому випадку.

Удачі міг

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.