Страница 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
google> php fastcgi

для затрафки
http://dklab.ru/chicken/nablas/49.html

Re: NGINX +mod_rewrite

Добавлено: 2009-09-14 16:59:42
100matolog
hizel писал(а):google> php fastcgi

для затрафки
http://dklab.ru/chicken/nablas/49.html
спасибо..но все таки - по теме можете что-то предложить?

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
тоже на кол за компанию :roll: