Страница 1 из 2
NGINX +mod_rewrite
Добавлено: 2009-09-14 16:18:26
100matolog
Решил переносить сайт под связку Nginx+PHP5+php-fpm+MySQL
Но есть загвоздка - в виртуальном хосте апача ДОХРЕНИЩА правил mod_rewrite-а.
Можно ли как-то конвертировать существующие правила
к примеру у мну есть правило в хосте апача
Код: Выделить всё
RewriteRule ^/contacts$ /contacts/ [NC,R=301]
RewriteRule ^/contacts/$ /static/contacts.html [NC]
RewriteRule ^/price/$ /static/price.html [NC]
RewriteRule ^/price/$ /static/price.html [NC]
RewriteRule ^/price/local/$ /static/price_local.html [NC]
RewriteRule ^/prices/$ /static/prices.html [NC]
или
Код: Выделить всё
RewriteRule ^/eu/transport$ /eu/transport/ [NC,R=301]
RewriteRule ^/eu/transport/$ /transport/index.php?territory=eu&%{QUERY_STRING} [NC]
RewriteRule ^/eu/transport/(.*)$ /transport/$1?territory=eu&%{QUERY_STRING} [NC]
RewriteRule ^/eu/transport/(.*).(.*)$ /transport/$1.$2?territory=eu&%{QUERY_STRING} [NC]
что на что нужно заменять?
ЗЫ - можно ли вынести правила реврайта во внешний файл и подключить его к nginx ?
Re: NGINX +mod_rewrite
Добавлено: 2009-09-14 16:34:01
hizel
include есть, только это не .htaccess и налету кушатся не будет,
читайте доку по реврайтам апачевским и реврайтам nginx переписывайте ;]
Re: NGINX +mod_rewrite
Добавлено: 2009-09-14 16:42:37
LMik
Там переписки 2 минуты. Работать будет быстрее в разы.
Re: NGINX +mod_rewrite
Добавлено: 2009-09-14 16:47:11
hizel
в интернетах была кучка статей в которых писалось что от использования fastcgi с пых-пых никакого ускорения не будет ;]
Re: NGINX +mod_rewrite
Добавлено: 2009-09-14 16:49:20
100matolog
hizel писал(а):include есть, только это не .htaccess и налету кушатся не будет,
читайте доку по реврайтам апачевским и реврайтам nginx переписывайте ;]
спасибо добрый человег))
Re: NGINX +mod_rewrite
Добавлено: 2009-09-14 16:50:15
100matolog
LMik писал(а):Там переписки 2 минуты. Работать будет быстрее в разы.
плиззз - подскажите -направьте как чего заменять ..
Re: NGINX +mod_rewrite
Добавлено: 2009-09-14 16:50:46
100matolog
hizel писал(а):в интернетах была кучка статей в которых писалось что от использования fastcgi с пых-пых никакого ускорения не будет ;]
покажите эту кучку....интересно читать
Re: NGINX +mod_rewrite
Добавлено: 2009-09-14 16:56:33
hizel
Re: NGINX +mod_rewrite
Добавлено: 2009-09-14 16:59:42
100matolog
спасибо..но все таки - по теме можете что-то предложить?
Re: NGINX +mod_rewrite
Добавлено: 2009-09-14 18:06:43
hizel
нет не хочу, в моих конфигурациях nginx rewrite не используется - поэтому лениво ;]
Re: NGINX +mod_rewrite
Добавлено: 2009-09-15 8:35:16
LMik
hizel писал(а):в интернетах была кучка статей в которых писалось что от использования fastcgi с пых-пых никакого ускорения не будет ;]
Тут дело не в ускорении, больше в оптимизации работы. Нафига мне держать тяжелый апач если nginx со всем вполне справится. А пхп будет занимать только ту память что и была занята модулем в обвязке целым апачем.
Ну это конечно не для хостингов где .htaccess надо, а на тяжелых проектах очень хорошо себя показывает.
Re: NGINX +mod_rewrite
Добавлено: 2009-09-15 8:38:37
LMik
Код: Выделить всё
RewriteRule ^/eu/transport/(.*).(.*)$ /transport/$1.$2?territory=eu&%{QUERY_STRING} [NC]
rewrite ^/eu/transport/(.*)\.(.*)$ /transport/$1.$2?territory=eu&$args
Типа того, но надо отладить, скорее всего где-нибудь есть мелкие недочеты. Регулярки дело такое....
доку читаем
http://sysoev.ru/nginx/docs/http/ngx_ht ... odule.html
Re: NGINX +mod_rewrite
Добавлено: 2009-09-16 18:11:45
100matolog
Ребята - может все таки подскажете как мне быть
вот код реврайта(апач)
Код: Выделить всё
RewriteRule ^/placecargo/$ /index.php?menu_id=44&%{QUERY_STRING} [NC,L]
RewriteRule ^/placecargo/(.*)$ /$1?menu_id=44&%{QUERY_STRING} [NC,L]
RewriteRule ^/placecargo/(.*).(.*)$ /$1.$2?menu_id=44&%{QUERY_STRING} [NC,L]
пытаюсь его переделать под nginx
Код: Выделить всё
rewrite ^/placecargo/$ /index.php?menu_id=44&%;
rewrite ^/placecargo/(.*)$ /$1?menu_id=44&%;
rewrite ^/placecargo/(.*).(.*)$ /$1.$2?menu_id=44&%;
Не работает - ругаецца мол нет такой страницы
вот конфиг nginx
Код: Выделить всё
user www www;
worker_processes 100;
error_log /var/log/nginx/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 51200;
use kqueue;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
server_names_hash_bucket_size 512;
sendfile on;
tcp_nopush on;
keepalive_timeout 70 30;
send_timeout 30s;
reset_timedout_connection on;
resolver 127.0.0.1;
resolver_timeout 10s;
open_file_cache max=100000 inactive=40s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
server {
listen 80 ;
server_name della.tester;
client_max_body_size 1M;
#charset koi8-r;
access_log /var/log/nginx/della.access.log main;
error_log /var/log/nginx/della.error.log error;
location /
{
root /usr/local/www/della/htdocs/;
index index.html index.htm;
rewrite ^/placecargo/$ /index.php?menu_id=44&%;
rewrite ^/placecargo/(.*)$ /$1?menu_id=44&%;
rewrite ^/placecargo/(.*).(.*)$ /$1.$2?menu_id=44&%;
rewrite ^/placetransport$ /placetransport/;
rewrite ^/placetransport/$ /index.php?menu_id=46&%;
rewrite ^/placetransport/(.*)$ /$1?menu_id=46&%;
rewrite ^/placetransport/(.*).(.*)$ /$1.$2?menu_id=46&%;
}
location ~* \.php$
{
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/site$fastcgi_script_name;
include fastcgi_params;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html
{
root /usr/local/www/nginx-dist;
}
location /mrtg/
{
alias /usr/local/www/munin/;
index index.html index.htm;
}
location /nginx_status
{
stub_status on;
access_log off;
}
}
}
Подскажите - что я неправильно делаю
Re: NGINX +mod_rewrite
Добавлено: 2009-09-16 19:55:12
LMik
Я же тебе один реврайт выше переписал, чего непонятного-то?
Re: NGINX +mod_rewrite
Добавлено: 2009-09-16 20:11:04
100matolog
LMik писал(а):Я же тебе один реврайт выше переписал, чего непонятного-то?
ыть...не обратил внимание..на работе задергали..спасибо..а что касается аргументов в конце правила - где у Сысоева это описано?
Re: NGINX +mod_rewrite
Добавлено: 2009-09-16 20:18:22
hizel
вам выше ссылку на доку постили, там по русски ;]
Re: NGINX +mod_rewrite
Добавлено: 2009-09-16 20:34:01
100matolog
hizel писал(а):вам выше ссылку на доку постили, там по русски ;]
я извинияюсь - но ничего касательно агрументов по этой ссылке не нашел
Re: NGINX +mod_rewrite
Добавлено: 2009-09-16 22:36:01
Alex Keda
сысоев хорошую штуку сделал...
вот тока с реврайтом подгадил неподетски, конечно...
Re: NGINX +mod_rewrite
Добавлено: 2009-09-16 23:29:49
hizel
100matolog писал(а):hizel писал(а):вам выше ссылку на доку постили, там по русски ;]
я извинияюсь - но ничего касательно агрументов по этой ссылке не нашел
а ну там потыкать в ссылочки :
http://sysoev.ru/nginx/docs/http/ngx_ht ... #variables
Re: NGINX +mod_rewrite
Добавлено: 2009-09-17 8:42:51
LMik
lissyara писал(а):сысоев хорошую штуку сделал...
вот тока с реврайтом подгадил неподетски, конечно...
Как интересно? Наоборот проще стало чем в апаче.
Re: NGINX +mod_rewrite
Добавлено: 2009-09-17 8:55:26
hizel
в nginx более читаем, тока там нет операция над файлом ;]
Re: NGINX +mod_rewrite
Добавлено: 2009-09-17 10:34:18
LMik
hizel писал(а):в nginx более читаем, тока там нет операция над файлом ;]
чего нет?
Re: NGINX +mod_rewrite
Добавлено: 2009-09-17 11:32:41
hizel
ну прямого аналога такой пурги например:
Код: Выделить всё
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php
Пы.Сы. гребанных джумалистов и приближенных на кол!
Re: NGINX +mod_rewrite
Добавлено: 2009-09-17 11:50:50
100matolog
hizel писал(а):ну прямого аналога такой пурги например:
Код: Выделить всё
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php
Пы.Сы. гребанных джумалистов и приближенных на кол!
а не джумлистов...если нуно реврайтить кучу index.php?
Re: NGINX +mod_rewrite
Добавлено: 2009-09-17 11:51:56
hizel
тоже на кол за компанию
