Подружить nginx с .htaccess

Главные вкладки

Аватар пользователя darkdim darkdim 5 января 2011 в 20:01

Доброго времени суток!
установлен nginx + php_fpm. Прочитал, директивы .htaccess нужно переносить в конфиг nginx.
Как можно "монстра" генерируемого boost перенести в конфиг nginx? Наверняка должно быть готовое решение?

Вот что сгенерил boost

### BOOST START ###
AddDefaultCharset utf-8

Header set Expires "Sun, 19 Nov 1978 05:00:00 GMT"
Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"

AddCharset utf-8 .html
AddCharset utf-8 .css
AddCharset utf-8 .js
AddEncoding gzip .gz

ForceType text/html

ForceType text/javascript

ForceType text/css

# Gzip Cookie Test
RewriteRule boost-gzip-cookie-test\.html cache/perm/boost-gzip-cookie-test\.html\.gz [L,T=text/html]

# GZIP - Cached css & js files
RewriteCond %{HTTP_COOKIE} !(boost-gzip)
RewriteCond %{HTTP:Accept-encoding} !gzip
RewriteRule .* - [S=2]
RewriteCond %{DOCUMENT_ROOT}/cache/perm/%{SERVER_NAME}%{REQUEST_URI}_\.css\.gz -s
RewriteRule .* cache/perm/%{SERVER_NAME}%{REQUEST_URI}_\.css\.gz [L,QSA,T=text/css]
RewriteCond %{DOCUMENT_ROOT}/cache/perm/%{SERVER_NAME}%{REQUEST_URI}_\.js\.gz -s
RewriteRule .* cache/perm/%{SERVER_NAME}%{REQUEST_URI}_\.js\.gz [L,QSA,T=text/javascript]

# NORMAL - Cached css & js files
RewriteCond %{DOCUMENT_ROOT}/cache/perm/%{SERVER_NAME}%{REQUEST_URI}_\.css -s
RewriteRule .* cache/perm/%{SERVER_NAME}%{REQUEST_URI}_\.css [L,QSA,T=text/css]
RewriteCond %{DOCUMENT_ROOT}/cache/perm/%{SERVER_NAME}%{REQUEST_URI}_\.js -s
RewriteRule .* cache/perm/%{SERVER_NAME}%{REQUEST_URI}_\.js [L,QSA,T=text/javascript]

# Caching for anonymous users
# Skip boost IF not get request OR uri has wrong dir OR cookie is set OR request came from this server OR https request
RewriteCond %{REQUEST_METHOD} !^(GET|HEAD)$ [OR]
RewriteCond %{REQUEST_URI} (^/(admin|cache|misc|modules|sites|system|openid|themes|node/add))|(/(comment/reply|edit|user|user/(login|password|register))$) [OR]
RewriteCond %{HTTP_COOKIE} DRUPAL_UID [OR]
RewriteCond %{HTTP:Pragma} no-cache [OR]
RewriteCond %{HTTP:Cache-Control} no-cache [OR]
RewriteCond %{HTTPS} on
RewriteRule .* - [S=3]

# GZIP
RewriteCond %{HTTP_COOKIE} !(boost-gzip)
RewriteCond %{HTTP:Accept-encoding} !gzip
RewriteRule .* - [S=1]
RewriteCond %{DOCUMENT_ROOT}/cache/normal/%{SERVER_NAME}%{REQUEST_URI}_%{QUERY_STRING}\.html\.gz -s
RewriteRule .* cache/normal/%{SERVER_NAME}%{REQUEST_URI}_%{QUERY_STRING}\.html\.gz [L,T=text/html]

# NORMAL
RewriteCond %{DOCUMENT_ROOT}/cache/normal/%{SERVER_NAME}%{REQUEST_URI}_%{QUERY_STRING}\.html -s
RewriteRule .* cache/normal/%{SERVER_NAME}%{REQUEST_URI}_%{QUERY_STRING}\.html [L,T=text/html]

### BOOST END ###

Комментарии

Аватар пользователя vitok vitok 5 января 2011 в 20:25

Тоже пробовал искать, не нашел, но примеров перевода риврайтов для nginx достаточно. хотя с boost это не так уж и просто.

Аватар пользователя darkdim darkdim 5 января 2011 в 20:37

да ну ручками, что бы ручками надо знать что делать. примеры конфигов nginx есть, должны быть и boost-овские настройки. Чтож, будем искать.

Аватар пользователя darkdim darkdim 6 января 2011 в 12:11

Softovick wrote:
darkdim wrote:
например это подойдет? https://github.com/yhager/nginx_drupal

НЕ уверен, там написано про Boost 5 scheme - подозреваю, что для Drupal 5...[/quote]
как вариант установим 5-ку, boost и сгенерим для .htaccess правила, а затем сравним. По крайней мере есть от чего отталкиваться

Аватар пользователя Softovick Softovick 6 января 2011 в 12:27

darkdim wrote:
Softovick wrote:
darkdim wrote:
например это подойдет? https://github.com/yhager/nginx_drupal

НЕ уверен, там написано про Boost 5 scheme - подозреваю, что для Drupal 5...

как вариант установим 5-ку, boost и сгенерим для .htaccess правила, а затем сравним. По крайней мере есть от чего отталкиваться[/quote]
Сравним с чем?

Аватар пользователя darkdim darkdim 6 января 2011 в 12:50

"Softovick" wrote:
Сравним с чем?

сначала правила генерируемые для .htaccess бустом под 5-кой и 6-м Drupal, затем можно смотреть как и какие правила реализуются в конфигах nginx для 5-ки и переносить их по аналогии с .htaccess-a сгенерированного бустом под 6-м Drupal. Речь идет о конфигурации nginx, а идея кеширования одна и та же что для 5-го буста, что для 6-го