HTTP/2的Apache反向代理将丢失MIME类型并使用默认值



英语不是我的母语,请原谅输入错误。

i配置Apache反向代理如下,并且可以使用火。

ProxyRequests Off
SSLEngine On
SSLProxyEngine On
ProxyPass / https://example.com/
ProxyPassReverse / https://example.com/

和我的网站(PHP(支持HTTP/2,所以我想通过HTTP/2代理。

i启用 mod_proxymod_proxy_httpmod_sslmod_http2mod_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-type。

您可以在phpmyadmin演示中找到示例,在DevTools中的Filter whitelist.php,此文件Content-Typetext/javascript

HTTP/2Content-Type代理成为application/x-httpd-php,它失去了源哑光型text/javascript

HTTP/1.1的代理,它运行良好。

我如何重新解决这个问题?

谢谢。

这是一个古老的问题,但我遇到了同样的问题并决定调查。

我在http2代理中找到了一个错误。

它将在下一个HTTPD版本中修复(2.4.55(

虚拟主机文件配置:

  <VirtualHost *:443>
    ServerAdmin admin@test.com
    ServerName example.com
    ServerAlias www.example.com
    ssl_certificate .....
    ssl_certificate_key ..........
  ProxyRequests Off Order deny, allow Allow from all
 <Location />
        ProxyPass http://example.com:8000/
        ProxyPassReverse http://example.com:8000/
    </Location>
</VirtualHost>

接下来,我们需要启用一些Apache模块。为此,请发出以下命令:

sudo a2enmod代理

sudo a2enmod proxy_http

sudo a2enmod proxy_balancer

sudo a2enmod lbmethod_byrequests

Apache现在需要使用命令重新启动:

sudo服务apache2 restart

相关内容

  • 没有找到相关文章

最新更新