我们的生产服务器安装了最新的 cpanel 版本“96.0 (build 8)”,并且运行启用了反向代理的 nginx。有关详细信息,请参阅随附的 netstat 屏幕截图。此服务器当前处于生产状态,我们正在运行两个主要网站,一个是 magento2,另一个是 wordpress。为了提高 magento 网站的性能,我们已经开始对 magento 2 暂存区进行研发,并启用了 varnish 缓存。
我们的计划是使用 varnish 缓存实现 magento2,并且我们已经安装了它并相应地配置了 magento。Varnish default.vcl 配置按照 magento2 标准完成。在实现该方案并测试后,varnish 标头不存在。有人在 nginx 反向代理 cpanel 服务器中启用了 varnish 吗?
答案1
根据netstat
输出,我可以看到打开了 2 个监听端口varnishd
:
- 港口
8443
- 港口
6081
这些是通过-a
运行时参数配置的。
这种设置很常见,通常是指HTTP监听端口和代理人监听端口。
端口 6081
端口6081
通常是HTTP端口,即使它是使用非标准端口号配置的。
在运行时参数方面通常配置如下:
-a :6081
或者有时甚至是如下形式:
-a :6081,HTTP
在这种情况下,Varnish 可能位于 Nginx 代理后面。
对于标准HTTP之后,Nginx 就需要通过代理到 Varnish 的端口了6081
。
端口 8443
端口8443
通常配置为使用PROXY 协议。
条件是位于 Varnish 前面的节点实际上使用 PROXY。
就运行时参数而言,它看起来像这样:
-a :8443,PROXY
如果我没记错的话,Nginx 的开源版本不支持使用 PROXY 协议反向代理到另一个节点。
使用正确的端口
根据netstat
输出,Nginx 监听端口443
和80
,即HTTPS和HTTP。
该httpd
服务(即 Apache)在444
HTTPS 和81
HTTP 端口上运行。
目标是将 HTTP 和 HTTPS 流量从 Nginx 路由到 Varnish,再从 Varnish 路由到 Apache。
这是链条:
HTTPS -> NGINX (port 443) --> Varnish (port 6081) --> Apache (port 81)
^
|
HTTP -> NGINX (port 80) ----+
Magento Varnish 的配置
在您的屏幕截图中,您使用端口8443
作为后端端口。这是不正确的。Apache 正在监听端口上的81
HTTP 流量,该端口应该是您的后端端口。