Nginx rewrite, перенос настроек из Apache htaccess
Затеял тотальное избавление от Apache на всех своих серверах в пользу nginx.
С настройками Ruby on Rails PHP-FPM, статики, акселератора APC и кэшированием я разобрался. Удалось даже запустить Битрикс под nginx.
Теперь возник резонный вопрос: как перевести классические .htaccess в nginx?
В частности меня интересует rewrite. Рассмотрим пример с реврайтингом URL http://site.com/texts/...
apache:
RewriteRule ^(files|foxgb|links|texts|other|blog|lastcomments|mail|upload|photo|myprojects|other|links|limits|banner|about|rating|friends)/?$ index.php?mod=$1&%{QUERY_STRING}
Правильно отрабатывают:
[COLOR="#006400"]/texts/
/texts/68.htm
/texts/?var1=aaa&var2=bbb[/COLOR]
nginx:
rewrite ^/(files|foxgb|links|texts|other|blog|lastcomments|mail|upload|photo|myprojects|other|links|limits|banner|about|rating|friends)/?$ /index.php?mod=$1?;
rewrite ^/texts/([0-9]+)\.htm$ /index.php?mod=viewtext&id=$1 last;
rewrite ^/preview/?(.*)$ index.php?mod=preview? last;
break;
}
Правильно отрабатывают:
[COLOR="#006400"]/texts/
/texts/68.htm[/COLOR]
Не работает:
[COLOR="red"]/texts/?var1=aaa&var2=bbb[/COLOR] (выдаёт тоже, что и просто /texts/)
Вопрос к знатокам: как правильно передавать GET -параметры при rewrite?
В гугле не забанили, читаю сухие мануалы и там на эту тему как-то не особо. Все делают по-разному, нет единого рецепта.
Покажите ваши конфиги? Как вы делаете rewrite?
P.S. — Крайне рекомендую всем переходить с Apache на nginx. Небо и земля.
P.P.S. — Собсно, ссылка на обсуждаемый сайт — в подписи к посту :)
Рабочий вариант:
За помощь спасибо Тень Пса!
В моём случае PHP-FPM и Ruby on Rails очень хорошо уживаются вместе на сильно ограниченных ресурсах виртуальной машины (Ubuntu x86_64, 10 LTS, памяти 614 Мб на всё + MySQL). Грузить Апач с зоопарком громоздких модулей не вижу смысла — не те приложения, а на рельсах он вообще крайне нестабилен и тормозит. Так что моё решение не в стиле «а давайте сделаем круто и модно» :)
Кроме того, сайты работают реально быстрее, а для заказчиков это критичный момент.
У Апача зоопарк модулей можно разогнать. И что это за сервак у тебя такой? Антиквариат конца 90х?
У Апача зоопарк модулей можно разогнать. И что это за сервак у тебя такой? Антиквартиат конца 90х?
Облако Amazon EC2. Условно-бесплатный тариф. Следующая ступень тарифа очень дорогая для моих задач. Пока не окупается. Апач реально не нужен и даже вреден для Рельсов, хочется маленького, простого и шустрого.
а что у них за условно-бесплатный тариф? )) сколько обходится, как зарегаться, как платить? ))
Google App Engine — узкоспециализованная Python-платформа для сайтов/сервисов, а не облачный хостинг. Платформа как услуга.
Amazon — инфраструктура как услуга. Виртуальный дата-центр без реального железа со своими сетями, стойками и кластеризацией. Веб-хостинг — всего лишь капля в море того, что можно развернуть на нём.
Я знаю что такое облако - просто облака бывают разные. Но в любом случае судя по всему мне это не подходит
Я знаю что такое облако - просто облака бывают разные. Но в любом случае судя по всему мне это не подходит
Вот и я о том, что облака разные. Просто такие сервисы как Amazon, Rackspace, Оверсан именно ресурс. А уж что на нём разворачивать — Виндовс, Линукс — это заказчик решает. AppEngine изначально для этого никак не подходил, так странно было выбирать кастрированное решение, а потом «уходить» с него.
Но наш разговор — это оффтопик.