ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[2]: балансировка по парам етру URL



Hello cat,

Sunday, February 28, 2010, 5:39:59 PM, you wrote:

> Alexander Kochetov Wrote:
> -------------------------------------------------------
>> В начале php-скрипта...
> нужно разгрузить php. от 300 запросов в секунду к серверу.
> отправлять каждый в fastcgi как-то накладно.

> вот черновой вариант (рабочий) того что нужно. 

> upstream backend
> {
>   #статика
>   server 127.0.0.1:81 weight=5;
>  
>  #php 
>  server 127.0.0.1:82;
> }

> #главный сервер (респределяющий)
> server
> {
>   listen 80;
>   #если пользователь test - отправить на backend-ы
>   if ($arg_user = test) {rewrite ^ /test;}
>   location /test
>   {
>     proxy_pass  http://backend/xml.php;
>   }
> }

> #backend выдачи из файла
> server
> {
>   listen 81;
>   location /
>   {
>     rewrite ^(.*).php$ /empty.xml last;
>   }
> }

> #backend выдачи из php
> server
> {
>   listen 82;
>   location ~ \.(php)$
>   {
>     fastcgi_pass   unix://tmp/php.sock;
>      .....
>   }
> }

> есть варианты сделать всё это без 2х дополнительных серверов backend-a?

Помоему, proxy_cache должен помочь.

location = /xml.php {
    if ($arg_user = 'test') {
        rewrite ^ /test last;
    }
    proxy_pass ...;
}

location = /test {
    proxy_pass ...;
    proxy_cache ...;
    proxy_cache_valid  30s;
}

как-то так.

-- 
Best regards,
 Denis                            mailto:denis@xxxxxxxxxx


_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.