NGINX +mod_rewrite

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
100matolog
ст. сержант
Сообщения: 309
Зарегистрирован: 2008-05-30 12:11:16
Откуда: kiev
Контактная информация:

NGINX +mod_rewrite

Непрочитанное сообщение 100matolog » 2009-09-14 16:18:26

Решил переносить сайт под связку 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 ?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: NGINX +mod_rewrite

Непрочитанное сообщение hizel » 2009-09-14 16:34:01

include есть, только это не .htaccess и налету кушатся не будет,
читайте доку по реврайтам апачевским и реврайтам nginx переписывайте ;]
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: NGINX +mod_rewrite

Непрочитанное сообщение LMik » 2009-09-14 16:42:37

Там переписки 2 минуты. Работать будет быстрее в разы.
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: NGINX +mod_rewrite

Непрочитанное сообщение hizel » 2009-09-14 16:47:11

в интернетах была кучка статей в которых писалось что от использования fastcgi с пых-пых никакого ускорения не будет ;]
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

100matolog
ст. сержант
Сообщения: 309
Зарегистрирован: 2008-05-30 12:11:16
Откуда: kiev
Контактная информация:

Re: NGINX +mod_rewrite

Непрочитанное сообщение 100matolog » 2009-09-14 16:49:20

hizel писал(а):include есть, только это не .htaccess и налету кушатся не будет,
читайте доку по реврайтам апачевским и реврайтам nginx переписывайте ;]
спасибо добрый человег))

100matolog
ст. сержант
Сообщения: 309
Зарегистрирован: 2008-05-30 12:11:16
Откуда: kiev
Контактная информация:

Re: NGINX +mod_rewrite

Непрочитанное сообщение 100matolog » 2009-09-14 16:50:15

LMik писал(а):Там переписки 2 минуты. Работать будет быстрее в разы.
плиззз - подскажите -направьте как чего заменять ..

100matolog
ст. сержант
Сообщения: 309
Зарегистрирован: 2008-05-30 12:11:16
Откуда: kiev
Контактная информация:

Re: NGINX +mod_rewrite

Непрочитанное сообщение 100matolog » 2009-09-14 16:50:46

hizel писал(а):в интернетах была кучка статей в которых писалось что от использования fastcgi с пых-пых никакого ускорения не будет ;]
покажите эту кучку....интересно читать

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: NGINX +mod_rewrite

Непрочитанное сообщение hizel » 2009-09-14 16:56:33

google> php fastcgi

для затрафки
http://dklab.ru/chicken/nablas/49.html
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

100matolog
ст. сержант
Сообщения: 309
Зарегистрирован: 2008-05-30 12:11:16
Откуда: kiev
Контактная информация:

Re: NGINX +mod_rewrite

Непрочитанное сообщение 100matolog » 2009-09-14 16:59:42

hizel писал(а):google> php fastcgi

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

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: NGINX +mod_rewrite

Непрочитанное сообщение hizel » 2009-09-14 18:06:43

нет не хочу, в моих конфигурациях nginx rewrite не используется - поэтому лениво ;]
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: NGINX +mod_rewrite

Непрочитанное сообщение LMik » 2009-09-15 8:35:16

hizel писал(а):в интернетах была кучка статей в которых писалось что от использования fastcgi с пых-пых никакого ускорения не будет ;]
Тут дело не в ускорении, больше в оптимизации работы. Нафига мне держать тяжелый апач если nginx со всем вполне справится. А пхп будет занимать только ту память что и была занята модулем в обвязке целым апачем.
Ну это конечно не для хостингов где .htaccess надо, а на тяжелых проектах очень хорошо себя показывает.
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: NGINX +mod_rewrite

Непрочитанное сообщение LMik » 2009-09-15 8:38:37

Код: Выделить всё

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
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

100matolog
ст. сержант
Сообщения: 309
Зарегистрирован: 2008-05-30 12:11:16
Откуда: kiev
Контактная информация:

Re: NGINX +mod_rewrite

Непрочитанное сообщение 100matolog » 2009-09-16 18:11:45

Ребята - может все таки подскажете как мне быть

вот код реврайта(апач)

Код: Выделить всё

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;
                }
                 
        }
}

Подскажите - что я неправильно делаю

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: NGINX +mod_rewrite

Непрочитанное сообщение LMik » 2009-09-16 19:55:12

Я же тебе один реврайт выше переписал, чего непонятного-то?
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

100matolog
ст. сержант
Сообщения: 309
Зарегистрирован: 2008-05-30 12:11:16
Откуда: kiev
Контактная информация:

Re: NGINX +mod_rewrite

Непрочитанное сообщение 100matolog » 2009-09-16 20:11:04

LMik писал(а):Я же тебе один реврайт выше переписал, чего непонятного-то?
ыть...не обратил внимание..на работе задергали..спасибо..а что касается аргументов в конце правила - где у Сысоева это описано?

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: NGINX +mod_rewrite

Непрочитанное сообщение hizel » 2009-09-16 20:18:22

вам выше ссылку на доку постили, там по русски ;]
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

100matolog
ст. сержант
Сообщения: 309
Зарегистрирован: 2008-05-30 12:11:16
Откуда: kiev
Контактная информация:

Re: NGINX +mod_rewrite

Непрочитанное сообщение 100matolog » 2009-09-16 20:34:01

hizel писал(а):вам выше ссылку на доку постили, там по русски ;]
я извинияюсь - но ничего касательно агрументов по этой ссылке не нашел

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35437
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: NGINX +mod_rewrite

Непрочитанное сообщение Alex Keda » 2009-09-16 22:36:01

сысоев хорошую штуку сделал...
вот тока с реврайтом подгадил неподетски, конечно...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: NGINX +mod_rewrite

Непрочитанное сообщение hizel » 2009-09-16 23:29:49

100matolog писал(а):
hizel писал(а):вам выше ссылку на доку постили, там по русски ;]
я извинияюсь - но ничего касательно агрументов по этой ссылке не нашел
а ну там потыкать в ссылочки :
http://sysoev.ru/nginx/docs/http/ngx_ht ... #variables
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: NGINX +mod_rewrite

Непрочитанное сообщение LMik » 2009-09-17 8:42:51

lissyara писал(а):сысоев хорошую штуку сделал...
вот тока с реврайтом подгадил неподетски, конечно...
Как интересно? Наоборот проще стало чем в апаче.
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: NGINX +mod_rewrite

Непрочитанное сообщение hizel » 2009-09-17 8:55:26

в nginx более читаем, тока там нет операция над файлом ;]
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: NGINX +mod_rewrite

Непрочитанное сообщение LMik » 2009-09-17 10:34:18

hizel писал(а):в nginx более читаем, тока там нет операция над файлом ;]
чего нет?
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: NGINX +mod_rewrite

Непрочитанное сообщение hizel » 2009-09-17 11:32:41

ну прямого аналога такой пурги например:

Код: Выделить всё

RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$  [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php
Пы.Сы. гребанных джумалистов и приближенных на кол!
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

100matolog
ст. сержант
Сообщения: 309
Зарегистрирован: 2008-05-30 12:11:16
Откуда: kiev
Контактная информация:

Re: NGINX +mod_rewrite

Непрочитанное сообщение 100matolog » 2009-09-17 11:50:50

hizel писал(а):ну прямого аналога такой пурги например:

Код: Выделить всё

RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$  [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php
Пы.Сы. гребанных джумалистов и приближенных на кол!
а не джумлистов...если нуно реврайтить кучу index.php?

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: NGINX +mod_rewrite

Непрочитанное сообщение hizel » 2009-09-17 11:51:56

тоже на кол за компанию :roll:
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.