Nginx 服务器上的 Magento 2 Varnish

Magento 2 Varnish on Nginx server

已成功安装 Varnish 缓存,但现在当我尝试使用:systemctl status varnish - 它给我一个错误 Could not get socket:80: Address already in use.

我已经使用 netstat -plntu 检查了套接字,问题似乎出在这里:

206.189.99.109:80 0.0.0.0:* 监听 31889/nginx: master

10.18.0.8:8080 0.0.0.0:* 监听 31889/nginx: master

206.189.99.109:8080 0.0.0.0:* 监听 31889/nginx: master

其中一个 Nginx: master 运行 在端口 80 下我试图更改 nginx 配置文件中的端口,但没有任何改变。

如何或在哪里可以将此端口更改为 80?

nginx 中,您必须在保存虚拟主机配置的配置文件中更改端口。

通常 listen 80 在该文件中的某处。将其替换为 listen 8080.

对于 varnish,侦听端口是 systemd 配置文件的一部分。默认情况下,它位于 /lib/systemd/system/varnish.service,但应将其复制到 /etc/systemd/system/varnish.service

varnish.service 文件中,您会发现类似于 -a :6081 的内容,应将其替换为 -a :80

varnish.service 文件进行更改后,您需要通过 运行 sudo systemctl daemon-reload.

重新加载 systemd 守护进程

最后,需要使用 systemd 提供的重新启动命令重新启动 nginxvarnish

这是为您完成所有这些的 all-in-one 命令:

sudo sed -i 's/80/8080/' /etc/nginx/sites-enabled/default
sudo cp -f /lib/systemd/system/varnish.service /etc/systemd/system/varnish.service
sudo sed -i 's/-a :6081/-a :80/' /etc/systemd/system/varnish.service
sudo systemctl daemon-reload
sudo systemctl restart nginx
sudo systemctl restart varnish

这些是我对这些命令的假设:

  • 您的 nginx vhost 配置文件是 /etc/nginx/sites-enabled/default
  • 您的 varnish 在其 out-of-the-box 配置中,并且仍在侦听端口 6081