Что-то я не понимаю принципов работы proxy :-/

Igor Sysoev is at rambler-co.ru
Tue Jul 24 18:08:37 MSD 2007


On Tue, Jul 24, 2007 at 05:03:36PM +0400, Anton Noginov wrote:

> 	Есть конфиг: 
> 
> ---------
>         server {
>                 listen       54321;
>                 access_log  logs/access_log; 
> 
>                 location /frontend.bat {
>                         proxy_pass   http://1.2.3.4:80;
>                 }
> 
> ### frontend.bat дергается как frontend.bat?counter_id=12345 
> ### и возвращает X-Accel-Redirect на некий /images/counter_54321.png 
> 
> 
>         location / {
>             root                 counter;
>             error_page           404 = /fetch$uri;
> 
> 
>         }
> 
>         location /fetch {
>             internal;
> 
>             proxy_pass           http://2.3.4.5:18081;
>             proxy_store          on;
>             proxy_store_access   user:rw  group:rw  all:r;
>             alias                counter;
> 
>         }
> 
>         }
> --------------- 
> 
> 	Суть, надеюсь, понятна - получили X-Accel-Redirect на картинку, отдали ее с 
> локальной fs, а если нет - ск04али с бэкэнда и закэшировали. 
> 
> 	Засада в том, что на бэкэнд приходит запрос не отданый x-accel-redirect, а 
> изначальный, который frontend.bat?counter_id=12345. 
> 
> 	Что я делаю не так? 

У proxy_pass есть фича - если нет URI-part и URI запроса не менялось с
помощью rewrite, то используется это оригинальное URI.
Лечится так:

-             proxy_pass           http://2.3.4.5:18081;
+             proxy_pass           http://2.3.4.5:18081/;

> 	ps/2: И, чтобы два раза не вставать: стОит ли ждать proxy_store с хранением 
> данных в мемкэше? 

Нет.


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





More information about the nginx-ru mailing list