抬头仰望星空,是否能发现自己的渺小。

伪斜杠青年

人们总是混淆了欲望和理想

浅谈 WordPress 容器优化…

之前在做博客容器化的时候比较急,留了一些坑,导致博客在一些稍大的页面会直接502,虽然PHP 本身性能并谈不上好,但之前也没遇到过,于是重新去研究了下。

之前的配置为 Nginx + WordPress,而这个 WordPress 是包含了 Apache 的完整版,只是用 Nginx 反向代理了一下,因为网上都这样说,直到我弄了一个 Ubuntu 容器再看了一次 Oneinstack 的相关配置,发现了一个 fastcgi 的东西,经过了解与其配套的还有一个 php-fpm,于是上 Docker Hub 看了官方提供的容器,果然官方的容器其实都是`wordpress:php-fpm-alpine` ,所以上面的配置可以简化,改为 Nginx + php-fpm 。

那么什么是 fastcgi,什么是 php-fpm?

简单点说,fastcgi 是 web 服务器与后端服务通信的一个公用协议,比如 Nginx 是一种轻量的 web 服务器,一般用于反向代理以及静态网页代理,Apache、 Tomcat 也一样,Apache 则是为了 PHP,Tomcat 则是 JAVA,其他语言各有不同。php-fpm 则是 fastcgi 在 php 上的一种实现。主要配置如下:

    location ~ [^/]\.php(/|$) {
        fastcgi_pass ip:9000;
        fastcgi_index index.php;
        include /etc/nginx/fastcgi.conf;
    }

从 Nginx 配置完 fastcgi 来看,主要作用就是将所有 PHP 文件用 fastcgi 协议交给 php-fpm 去处理(解析),而其他的则 Nginx 自行处理,比如 css、js、图片等,所以 nginx 必须能访问到 WordPress 的根目录。找了一张图(取自:通过docker compose安装wordpress:5-php7.2-fpm):

之前我并不理解为什么要这样做,现在知道了,当重新配置完一切后,果然顺滑了很多,镜像大小对比体积也小了很多:

至于具体怎么配置的,网上教程很多,就不贴了,方向对了后面就好做了,而我就比较懒,直接用了 oneinstack 的相关配置。

参考:

通过docker compose安装wordpress:5-php7.2-fpm

oneinstack fastcgi 配置

oneinstack Apache 配置


本站由以下主机服务商提供服务支持:

0条评论

发表评论