带有Apache反向代理http2的NGINX Web服务器

问题描述 投票:0回答:1

我已将我的Apache配置为充当反向代理。现在我想启用http2来加快速度。

Apache已启用模块,Nginx也已启用。

当我输入时

Protocols h2 h2c http/1.1
ProtocolsHonorOrder Off

ProxyPass / h2://192.168.2.100/
ProxyPassReverse / https://192.168.2.100/

进入apache站点配置,Nginx引发400 Bad Request Error。

使用此代码可代替:

Protocols h2 h2c http/1.1
ProtocolsHonorOrder Off
ProxyPass / https://192.168.2.100/
ProxyPassReverse / https://192.168.2.100/

Nginx配置:

listen 443 ssl http2;

我需要如何配置此部分才能正常工作?#

apache nginx proxy reverse
1个回答
0
投票

这不是评论,而是答案,但看起来您是新来的,所以也许我可以帮忙(冒着完全错误的危险。)>

我正在将Nginx配置为Apache的反向代理以运行Django应用程序(顺便说一下,我从未听说有人使用Apache作为Nginx的反向代理)。

但是Nginx文档中进行了一些讨论,使我认为甚至不可能:

阅读proxy_pass上的Nginx文档,他们提到了using websockets for proxying requires a special configuration

在该文档中,它讨论了websocket如何要求HTTP1.1(以及UpgradeConnection HTTP标头),因此,您可以在服务器和代理之间基本构造它们proxy_set_header,或者如果客户请求包括它们。

大概在这种情况下,如果客户端未发送Upgrade标头,则您将proxy_pass使用TCP而不是Websockets与服务器建立连接。

嗯,HTTP2(我假设)是另一个Upgrade,并且可能会得到更少的用户代理支持。因此,至少,您会冒兼容性问题的风险。

同样,我从未将Apache配置为(反向)代理,但是我从您的配置中猜测,Apache将处理对客户端的加密,然后可能必须重新加密才能连接到Nginx。

仅加密方面的开销很大,可能还有浏览器兼容性问题……而且可能不是很好的设置。

再次,我不确定是否有可能,我是来这里寻找类似答案的,但是您可能需要重新考虑。

© www.soinside.com 2019 - 2024. All rights reserved.