【发布时间】:2019-03-24 01:11:10
【问题描述】:
问题: 我有一个用于提取静态数据的 url 子路径的别名目录。我可以得到这个 gzip 压缩就好了。但是,当我将代理添加到其他路径并为我的静态数据添加异常时,压缩会停止。
环境
- Windows x64
- Apache 2.4
httpd.conf 中的关键配置
<Directory "${SRVROOT}/static">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
# I have used FilterProvider as well an know this just does javascript at the moment
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
SetOutputFilter DEFLATE
<IfModule alias_module>
Alias "/static" "${SRVROOT}/static"
ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"
</IfModule>
使用此配置和 SRVROOT 下的“static”文件夹,我放置了一个文件 bundle.js(3M 数据)。在http://localhost/static/bundle.js 轮询这个文件给我 600K 的 gzip 压缩下载。一切都好
现在进行更改。应用的默认路径需要反向代理到另一个应用,而 apache 只是提供静态内容。
<IfModule proxy_html_module>
Include conf/extra/proxy-html.conf
</IfModule>
额外的/proxy-html.conf 文件内容
#default proxy stuff above...
ProxyRequests off
ProxyPass / http://localhost:5000/
#ProxyPass /static/ /
ProxyHTMLURLMap http://localhost:5000/ /
<Location />
ProxyPassReverse /
ProxyHTMLEnable On
ProxyHTMLURLMap / /
RequestHeader unset Accept-Encoding
</Location>
<Location /static/ >
ProxyPass !
</Location>
这仍然允许我访问我的静态数据,只是现在 gzip 压缩没有发生。我不知道这是否是 apache 中的一个错误,或者是否有更好的方法来配置它。
这是我的要求:
- 我无法更改 url 的路径(静态是它所在的位置,并且根 url 内容被反向代理
- 我需要压缩
- 部署到一个根文件夹,但实际上并未命名为 static,因此我将(在本例中)static 路由到 {some directory} /static 实际上是 http://localhost/static/* 到 dist 文件夹。
【问题讨论】:
标签: apache gzip alias reverse-proxy