[PATCH] Upstream: support named location for X-Accel-Redirect

Igor Sysoev igor at sysoev.ru
Mon Nov 10 09:08:25 UTC 2014


On 10 Nov 2014, at 03:54, Toshikuni Fukaya <toshikuni-fukaya at cybozu.co.jp> wrote:

> (2014/11/08 0:59), Igor Sysoev wrote:
>> On 04 Nov 2014, at 14:18, Toshikuni Fukaya <toshikuni-fukaya at cybozu.co.jp> wrote:
>> 
>>> Upstream: support named location for X-Accel-Redirect.
>> 
>> Could please you provide usage examples?
>> 
>> 
> 
> Here is my (simplified) config:
> 
> server {
> location / {
>  proxy_pass http://app;
> }
> 
> location @contents {
>  proxy_pass http://contents/$upstream_http_x_contents_url;
> }
> }
> 
> app is a upstream application server, it processes all client requests.
> contents is a some of blob server (like as S3) to supply images, css and so on.
> 
> When clients access to nginx, app will check a some of ACL to such requests, then reply with x-accel-redirect and x-contents-url headers.
> Finally, nginx will return a content from contents upstream.
> In this time, x-accel-redirect will be set to @contents and x-contents-url will be an appropriate content url.
> 
> The key of this strategy is that all requests is passed to app and can be checked by it.
> If location @contents is a normal location such as /contents, a client request to /contents will not be passed app. It is not comfortable for me.

The "/contents” location can be marked as "internal", and it can not be accessed outside directly.
However, using named location is more convenient for this example. Thank you.


-- 
Igor Sysoev
http://nginx.com



More information about the nginx-devel mailing list