Re[2]: балансировка по параметру URL
Denis F. Latypoff
denis на gostats.ru
Вс Фев 28 14:56:30 MSK 2010
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 at gostats.ru
Подробная информация о списке рассылки nginx-ru