【问题标题】:Magento 2 Varnish on Nginx serverNginx 服务器上的 Magento 2 Varnish
【发布时间】:2021-01-29 00:17:22
【问题描述】:

已成功安装清漆缓存,但现在当我尝试使用:systemctl status varnish - 它给我一个错误无法获取套接字:80:地址已在使用中。

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

206.189.99.109:80 0.0.0.0:* LISTEN 31889/nginx: master

10.18.0.8:8080 0.0.0.0:* LISTEN 31889/nginx: master

206.189.99.109:8080 0.0.0.0:* LISTEN 31889/nginx: master

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

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

【问题讨论】:

    标签: magento magento2 varnish


    【解决方案1】:

    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

    这是为您完成所有这些操作的一体化命令:

    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 conf 文件是/etc/nginx/sites-enabled/default
    • 您的varnish 在其开箱即用 配置中,并且仍在侦听端口6081

    【讨论】:

    • 当我运行第一个命令时出现错误:没有这样的文件或目录
    • 而不是启用站点我在那里有一个名为sites-available的目录,在里面我有默认值,但即使我在命令中更改了这个我也没有得到结果,端口80仍在使用中通过 nginx
    • 已解决,但必须在端口 80 上移动 nginx 并在端口 8080 上清漆。非常感谢!
    • 我在给你的答案中修改了我的sed 命令,因为我意识到nginx 在配置文件中添加了 2 个监听端口:1 个用于 IPv4,1 个用于 IPv6。 /etc/nginx/sites-enabled/default 不存在的事实可能是一个问题,因为nginx 从该文件夹引导配置。请再试一次,因为 Varnish 应该在 80 端口上运行。
    • 一切都很好,除了我不得不为 NGINX 使用端口 80 和为 Varnish 使用 8080 端口。这样,当有人访问非 https URL 时,我可以使用 NGINX vhost 上的第二个服务器块进行 301 重定向到 https
    猜你喜欢
    • 1970-01-01
    • 2021-10-16
    • 2018-08-25
    • 2021-03-19
    • 1970-01-01
    • 2012-05-27
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多