首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置代理请求a-la x-sendfile的授权?

如何设置代理请求a-la x-sendfile的授权?
EN

Stack Overflow用户
提问于 2018-04-17 07:36:28
回答 1查看 238关注 0票数 0

在apache + mod_wsgi nginx + uwsgi的设置中,如何设置web服务器以代理大型"intranet“文件请求?

我正在考虑的是一种la x-sendfile的方式,但是在wsgi应用程序指向其响应中的文件URL "intranet“位置的地方,web服务器下载并将文件上传到原始请求者,而不透露它的"intranet”位置。当然,如果在wsgi应用程序端没有身份验证和访问权限检查,则不会发生任何事情。

很难通过谷歌搜索找到这种设置,甚至不确定使用哪个术语。

所谓"intranet“,我指的是通过来自代理服务器的HTTPS请求访问的文件,代理服务器可能对它们有自己的凭据,但不包括公共internet或本地文件系统(如x-sendfile的用例)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-17 07:55:52

如果在守护进程模式中使用mod_wsgi,则可以返回带有Location响应头的空HTTP200响应,当Apache代理到mod_wsgi守护进程时,它将将其计算为子请求。其中的路径可以映射到Apache配置中的新URL处理程序,这实际上是一个代理设置,它将请求发送到另一个下游后端服务器。然后,它的响应将被代理回客户机。如果您不希望第二个URL处理程序在外部可见,也就是说,如果有人计算出URL路径,就不能直接请求它,如果它不是子请求,则需要使用mod_rewrite规则来拒绝任何请求。

所以你可能有这样的东西:

代码语言:javascript
复制
RewriteCond %{IS_SUBREQ} false
RewriteRule ^/hidden/stuff/ - [F]

ProxyPass /hidden/stuff/ http://backend.example.com/

然后,WGSI响应将是空的HTTP200响应,其Location报头为:

代码语言:javascript
复制
Location: /hidden/stuff/some-file-name

子请求的最终结果是:

代码语言:javascript
复制
http://backend.example.com/some-file-name

针对后端服务器,将响应代理回客户端。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49872363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档