mod_proxy_scgi
描述: | 用于mod_proxy的 SCGI 网关模块 |
状态: | 延期 |
模块标识符: | proxy_scgi_module |
源文件: | mod_proxy_scgi.c |
兼容性: | 可在 version 2.2.14 及更高版本中使用 |
摘要
该模块需要mod_proxy的服务。它为SCGI 协议,version 1提供支持。
因此,为了获得处理 SCGI 协议的能力,必须在服务器中存在mod_proxy和mod_proxy_scgi。
警告
在有保护你的服务器之前不要启用代理。开放代理服务器对您的网络和整个 Internet 都是危险的。
例子
请记住,为了使以下示例有效,您必须启用mod_proxy和mod_proxy_scgi。
简单的网关
ProxyPass "/scgi-bin/" "scgi://localhost:4000/"
除了上面列出的代理模块之外,平衡网关还需要mod_proxy_balancer和至少一个负载均衡器算法模块,例如mod_lbmethod_byrequests。mod_lbmethod_byrequests是默认值,将用于此 example configuration。
平衡的网关
ProxyPass "/scgi-bin/" "balancer://somecluster/" <Proxy "balancer://somecluster"> BalancerMember "scgi://localhost:4000" BalancerMember "scgi://localhost:4001" </Proxy>
环境变量
除了控制mod_proxy行为的 configuration 指令外,环境变量还可以控制 SCGI 协议提供程序:
- proxy-scgi-pathinfo
默认情况下 mod_proxy_scgi 既不会创建也不会 portport PATH_INFO 环境变量。这允许后端 SCGI 服务器正确地确定 SCRIPTNAME 和 Script-URI 并且符合 RFC 3875 部分 3.3.如果您需要 mod_proxy_scgi 为 PATH_INFO 生成“最佳猜测”,请设置此 env-var。必须在 SetEnv 生效之前设置变量。可以使用 SetEnvIf 代替:SetEnvIf Request_URI。 proxy-scgi-pathinfo
ProxySCGIInternalRedirect 指令
描述: | 启用或禁用后端的内部重定向响应 |
句法: | ProxySCGIInternalRedirect On\|Off\|Headername |
默认: | ProxySCGIInternalRedirect On |
Context: | server config,virtual host,目录 |
状态: | 延期 |
模块: | mod_proxy_scgi |
兼容性: | Headername feature 可在 version 2.4.13 及更高版本中使用 |
ProxySCGIInternalRedirect
使后端能够在内部将网关重定向到不同的 URL。此 feature 源自mod_cgi,如果响应状态为OK
(200
)且响应包含Location
(或已配置的备用标头)且其 value 以斜杠(/
)开头,则会在内部重定向响应。此 value 被解释为 Apache httpd 内部重定向到的新本地 URL。
在这方面mod_proxy_scgi与mod_cgi相同,除了你可以关闭 feature 或指定使用Location
以外的标题。
例
ProxySCGIInternalRedirect Off # Django and some other frameworks will fully qualify "local URLs" # set by the application, so an alternate header must be used. <Location /django-app/> ProxySCGIInternalRedirect X-Location </Location>
ProxySCGISendfile 指令
描述: | 启用 X-Sendfile 伪响应头的 evaluation |
句法: | ProxySCGISendfile On\|Off\|Headername |
默认: | ProxySCGISendfile Off |
Context: | server config,virtual host,目录 |
状态: | 延期 |
模块: | mod_proxy_scgi |
ProxySCGISendfile
指令使 SCGI 后端允许 files 直接由网关提供。这对于 performance 目的很有用- httpd 可以使用sendfile
或其他优化,如果文件来自后端 socket,这是不可能的。此外,文件内容不会传输两次。
ProxySCGISendfile
参数确定网关行为:
Off
没有特殊处理。On
网关查找名为 X-Sendfile 的后端响应头,并将 value 解释为要服务的文件名。标题将从最终响应 headers 中删除。这相当于 ProxySCGISendfile X-Sendfile。- 还要别的吗
与 On 类似,但该参数不是硬编码头 name X-Sendfile,而是用作头 name。
例
# Use the default header (X-Sendfile) ProxySCGISendfile On # Use a different header ProxySCGISendfile X-Send-Static