【发布时间】:2019-09-26 08:08:19
【问题描述】:
英语不是我的母语,请原谅输入错误。
我按如下方式配置了 Apache 反向代理,它可以工作。
ProxyRequests Off
SSLEngine On
SSLProxyEngine On
ProxyPass / https://example.com/
ProxyPassReverse / https://example.com/
而且我的网站(PHP)支持HTTP/2,所以我想通过HTTP/2代理它。
我启用了mod_proxy、mod_proxy_http、mod_ssl、mod_http2、mod_proxy_http2 和其他一些模块。并将.php MIME-type 设置为application/x-httpd-php。
AddType application/x-httpd-php .php
VirtualHost 如下:
<VirtualHost *:443>
DocumentRoot "/path/to/wwwroot/"
ServerName localhost:443
ProxyRequests Off
SSLEngine On
SSLProxyEngine On
ProxyPass / h2://example.com/
ProxyPassReverse / https://example.com/
# Cert
SSLCertificateFile ...
SSLCertificateKeyFile ...
</VirtualHost>
不同的是 ProxyPass / https://example.com/ 到 ProxyPass / h2://example.com/。
浏览器中的响应标头 Content-Type 始终获取默认 MIME 类型。
你可以在phpMyAdmin Demo找到例子,在DevTools中过滤whitelist.php,这个文件Content-Type是text/javascript。
通过HTTP/2 代理它,Content-Type
变成application/x-httpd-php,它失去了源MIME类型text/javascript。
并通过HTTP/1.1代理它,效果很好。
我该如何解决这个问题?
谢谢。
【问题讨论】: