location, backend, rewrites

Igor Sysoev is at rambler-co.ru
Fri Aug 15 15:08:33 MSD 2008


On Fri, Aug 15, 2008 at 01:05:16PM +0300, Sergej Kandyla wrote:

> Подскажите пожалуйста где я ошибаюсь.
> Есть сайт с DLE, бекенд апач. Хочу реализовать правильную схему 
> проксирования на бекенд исключительно php и динамики.
> 
>        location /index.php {
>                rewrite / @backend ;
>        }
> 
>        location ~ \.php$ {
>                rewrite / @backend ;
>        }
> 
>        location / {
>                 root /home/vhosts/domain/public_html;
>                error_page 404 = @backend;
>                index index.php;
>        }
> 
>        location @backend {
>                    proxy_set_header Host $host;
>                    proxy_set_header X-Real-IP $remote_addr;
>                    proxy_set_header X-Forwarded-For 
> $proxy_add_x_forwarded_for;
>                    proxy_pass http://IP;
>        }
> 
> Но на запрос к сайту, браузер предлагает мне сохранить php страницу. 
> Тобиш запрос бекенду не передается.
> Пробовал конструкцию
>    if (!-e $request_filename) {proxy_pass http://IP;}
> 
> но результат такой же. Также пробовал менять порядок задания локейшенов.
> 
> PS. раньше была такая схема:
> 
>        location / {
>                proxy_pass              http://IP;
>                .....
>        }
> 
>        location ~* 
> ^.+.(nrg|htm|htf|chm|sisx|sis|flv|thm|bin|...<skip>..)$ {
>           root /home/_username_/domains/_default_/public_html/;
>        }
> 
> Но она довольно ограниченная, хотелось бы узнать как следует делать 
> правильно (в случае использования бекендов типа апаче)

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        location / {
                root /home/vhosts/domain/public_html;
                error_page 404 = @backend;
                index index.php;
        }
 
        location \.php$ {
                    proxy_pass http://IP;
        }
 
        location @backend {
                    proxy_pass http://IP;
        }


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list