如何在nginx中使用X-Accel-Redirect

时间:2011-10-01 16:32:59

标签: asp.net nginx

我有一个asp.net网站,我有很好的网址,因此用户可能会看到/abc/1/a.jpg路径为docroot/abc/number/number/id.jpg

我需要asp.net来解码真实路径的位置。所以基本上我这样做而不是重写我设置X-Accel-Redirect标头并调用Reponse.End();我收到了404错误。此代码位于Application_BeginRequest中。我试着不做.End()而只是回来。我得到一个像404错误的asp.net。我乱搞并放弃了,而不是发送标题我称为HttpContext.Current.RewritePath到完全相同的路径。现在显示图像,但它由asp.net而不是nginx处理。

如何让nginx收听我的X-Accel-Redirect标头?我的配置文件需要什么?我现在看起来像这样

请注意,我实际上是通过asp.net放置所有内容。

server {
    server_name www.MYSITE.com static.MYSITE.com;

    root /var/www/MYSITE;

    location / {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

1 个答案:

答案 0 :(得分:0)

,嘎。问题是nginx配置文件。我需要添加

location /base/path {
    internal;
}

该文件必须位于标记为internal;的目录/位置中我注意到内容类型不正确,除非设置为“”。继承人我做了什么,我不确定你需要第一行

HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.ContentType = "";
HttpContext.Current.Response.AddHeader("X-Accel-Redirect", full);
HttpContext.Current.Response.End();