文档

Nginx 服务器的配置

如果您使用的 Nginx 服务器不支持 .htaccess 规则, Xilifox Image Optimizer 插件需要额外的 Nginx 服务器配置才能正常工作.

  • 步 1.#

    以下是我们为其准备了专门说明的托管服务列表. 如果您使用其中之一, 使用专用手册:

    如果您不使用上述任何托管, 请按照以下说明操作.

  • 步 2.#

    启动与您网站的 SSH 连接 或将此说明转发给您的服务器管理员.

  • 步 3.#

    在其中一个路径中找到配置文件 (请记住选择您的域使用的配置文件):

    • /etc/nginx/sites-available/ 或者 /etc/nginx/sites-enabled/
    • /etc/nginx/conf.d/
  • 步 4.#

    将此代码添加到您的域使用的配置文件中:

    # BEGIN XIO
    set $ext_avif ".avif";
    if ($http_accept !~* "image/avif") {
    set $ext_avif "";
    }

    set $ext_webp ".webp";
    if ($http_accept !~* "image/webp") {
    set $ext_webp "";
    }

    location ~* ^/wp-content/(?<path>.+).(?<ext>jpe?g|png|gif|webp)$ {
    add_header Vary Accept;
    add_header Cache-Control "private";
    expires 365d;
    try_files
    /wp-content/uploads-xio/$path.$ext$ext_avif
    /wp-content/uploads-xio/$path.$ext$ext_webp
    $uri =404;
    }
    # END XIO

    请记住:

    • 将这些规则添加到 server { ... } 堵塞
    • 在其他规则之前添加这些规则 location { ... } 指令
    • 在所有规则之前添加这些规则 include 指令中的 server { ... } 堵塞 (特别是在包含 staticfiles.conf 文件之前, 如果存在的话)

    以下是正确添加规则的示例 (这是 Nginx 配置示例, 但在大多数情况下看起来很相似):

  • 步 5.#

    检查您的域的配置文件中是否有类似的规则 (位置指令中的扩展列表可能会有所不同, 所以寻找相似之处):

    location ~* ^.+.(css|js|jpg|jpeg|png|gif|webp|ico|eot|otf|woff|woff2|ttf)$ {
    expires max;
    ...

    或者

    location ~* ^.+.(css|js|jpe?g|png|gif|webp|ico|eot|otf|woff|woff2|ttf)$ {
    expires 1M;
    try_files $uri @proxy;
    ...

    取决于配置, 如果配置分为多个文件,这些规则可能位于不同的配置文件中.

    如果你发现这样的规则, 请从位置指令中删除以下格式:

    • jpgjpeg 或者 jpe?g
    • png
    • gif
    • webp

    这是更改之前的示例位置指令的样子:

    这是相同指令更改后的样子:

  • 步 6.#

    添加对所需 MIME 类型的支持, 如果不支持. 要做到这一点, 编辑配置文件:

    /etc/nginx/mime.types

    并添加此代码 (将这些行添加到 types { ... } 堵塞):

    image/webp webp;
    image/avif avif;

  • 步 7.#

    使用命令重新启动Nginx服务器:

    systemctl restart nginx

  • 步 8.#

    就这样! 我们的插件就可以正常工作了.

     

不是您正在寻找的解决方案?

请检查其他 文章 或打开一个 工单.