On this page
Apache 模块 mod_proxy_express
Description: | mod_proxy的动态批量反向代理扩展 |
---|---|
Status: | Extension |
Module Identifier: | proxy_express_module |
Source File: | mod_proxy_express.c |
Compatibility: | 在 Apache 2.3.13 和更高版本中可用 |
Summary
该模块通过将 HTTP 请求的Host:
HeadersMap 到存储在 DBM 文件中的服务器名称和后端 URL,来创建动态配置的大量反向代理。这使得无需配置更改即可轻松使用大量反向代理。它的功能不如mod_proxy_balancer少,后者也提供动态增长,但旨在处理大量得多的后端。它非常适合用作前端 HTTP 交换机和微服务体系结构。
该模块需要 mod_proxy的服务。
Warning
在拥有保护您的服务器之前,不要启用代理。开放式代理服务器对您的网络和整个 Internet 都是危险的。
Limitations
此模块无意替代mod_proxy_balancer的动态功能。取而代之的是,它主要是一种轻量级且快速的替代方案,而不是将mod_rewrite与RewriteMap和
[P]
标志一起用于 Map 的反向代理。它根本不支持正则表达式或模式匹配。
It emulates:
<VirtualHost *:80>
ServerName front.end.server
ProxyPass "/" "back.end.server:port"
ProxyPassReverse "/" "back.end.server:port"
</VirtualHost>
也就是说,整个 URL 都将附加到 Map 的后端 URL。这符合成为简单但快速的反向代理交换机的意图。
ProxyExpressDBMFile Directive
Description: | DBM 文件的路径名。 |
---|---|
Syntax: | ProxyExpressDBMFile pathname |
Context: | 服务器配置,虚拟主机 |
Status: | Extension |
Module: | mod_proxy_express |
ProxyExpressDBMFile
指令指向 Express map DBM 文件的位置。该文件用于将从Host:
Headers 获得的传入服务器名称 Map 到后端 URL。
Note
使用httxt2dbmUtil 以纯文本文件格式构造文件。
ProxyExpress Map 文件
## ##express-map.txt: ## www1.example.com http://192.168.211.2:8080 www2.example.com http://192.168.211.12:8088 www3.example.com http://192.168.212.10
创建 DBM 文件
httxt2dbm -i express-map.txt -o emap
Configuration
ProxyExpressEnable on
ProxyExpressDBMFile emap
ProxyExpressDBMType Directive
Description: | DBM 文件类型。 |
---|---|
Syntax: | ProxyExpressDBMType type |
Default: | ProxyExpressDBMType default |
Context: | 服务器配置,虚拟主机 |
Status: | Extension |
Module: | mod_proxy_express |
ProxyExpressDBMType
指令控制模块期望的 DBM 类型。默认值为使用httxt2dbm创建的默认 DBM 类型。
可能的值为(在运行时可能并非全部可用):
Value | Description |
---|---|
db |
伯克利 DB 文件 |
gdbm |
GDBM files |
ndbm |
NDBM files |
sdbm |
SDBM 文件(始终可用) |
default |
默认 DBM 类型 |
ProxyExpressEnable Directive
Description: | 启用模块功能。 |
---|---|
Syntax: | ProxyExpressEnable on|off |
Default: | ProxyExpressEnable off |
Context: | 服务器配置,虚拟主机 |
Status: | Extension |
Module: | mod_proxy_express |
ProxyExpressEnable
指令控制模块是否处于活动状态。