如何在Apache网站服务器上使用Vultr CDN

Apache 是一个网络服务器应用程序,使用您的域名 URL 托管和交付网络应用程序。向 Apache 网络服务器发出的每个请求都会增加服务器负载,并影响网络应用程序的总体性能。通过集成 Vultr CDN URL,Web 服务器会使用你的 CDN 发送特定请求,从而加快你的 Web 应用程序内容交付过程。

本文将介绍如何在 Apache 网络服务器上使用 Vultr CDN。您将设置 Apache 虚拟主机配置,将特定请求模式转发到 Vultr CDN URL,同时在源服务器 URL 上保持较轻的请求。

准备工作

开始之前:

  • 使用 Vultr Marketplace 应用程序部署 LAMP 服务器。
  • 设置指向公共服务器 IP 地址的域 A 记录。
  • 以具有 sudo 权限的非 root 用户身份使用 SSH 访问服务器。

定位 Apache 虚拟主机配置

  1. 测试 Apache 配置是否存在错误。
    $ apachectl configtest
    
  2. 切换到 Apache 数据主目录。
    $ cd /etc/apache2/
    
  3. 使用您的域名搜索 Apache 目录中的所有文件,以验证活动虚拟主机配置文件。用您的实际域名替换 example.com
    $ grep -r "example.com" /etc/apache2/
    

    Output:

    /etc/apache2/sites-available/example.com.conf:  ServerName www.example.com

    上述输出返回 example.conf 作为与 example.com 域相关的活动虚拟主机配置文件。默认情况下,如果服务器上没有可用的虚拟主机配置,Apache 会使用 /etc/apache2/sites-available/000-default.conf 文件。

  4. 查看虚拟主机配置文件并验证工作中的 DocumentRoot 目录。
    $ cat /etc/apache2/sites-available/example.com.conf | grep DocumentRoot
    

    Output:

    DocumentRoot /var/www/html
  5. 切换到文档根目录。
    $ cd /var/www/html/
    
  6. 创建一个新的 images 目录来测试 Apache 请求模式。
    $ sudo mkdir images
    
  7. 切换到目录。
    $ cd images
    

    将样本文件上传到该目录,以测试 Apache 的请求模式。

方法 1:设置修改响应

Apache 响应修改会匹配请求,并将原始请求 URL 修改为 Vultr CDN URL。响应修改过程使用 mod_substitutemod_filter 模块来过滤和修改指向你的 Vultr CDN URL 的请求。请按照以下步骤设置响应修改,并将请求模式转发到你的 Vultr CDN。

  1. 启用 Apache mod_substitute 模块。
    $ sudo a2enmod substitute
    

    输出:

    Enabling module substitute.
    To activate the new configuration, you need to run:
    systemctl restart apache2
  2. 启用 Apache mod_filter 模块,按 MIME 类型过滤请求。
    $ sudo a2enmod filter
    
  3. 重启 Apache 以激活模块。
    $ sudo systemctl restart apache2
    
  4. 使用 Nano 等文本编辑器打开 Apache 虚拟主机配置文件。
    $ sudo nano /etc/apache2/sites-available/example.com.conf
    
  5. 在文件的 指令之前添加以下配置。用实际值替换 example.comcdn-example88.vultrcdn.com
    AddOutputFilterByType SUBSTITUTE text/html
    Substitute s|example.com/images/|cdn-example88.vultrcdn.com/images/|i
    Substitute s|example.com/css/|cdn-example88.vultrcdn.com/css/|i
    Substitute s|example.com/js/|cdn-example88.vultrcdn.com/js/|i
    

    保存并关闭文件。

    上述响应修改配置可匹配 imagescss 或 js 目录模式下的所有请求。匹配请求模式下的所有文件都会被修改为 Vultr CDN URL。例如,请求 example.com/images/image.png 会被修改为 cdn-example88.vultrcdn.com/images/image.png 。在配置中:

    AddOutputFilterByType:按 MIME 类型过滤请求模式。 /text/html 匹配 HTML 请求,包括图像、样式表和脚本等嵌入元素。其他 MIME 类型包括

    •  text/css,application/javascript,application/custom,image/jpg,image/pngimage/webp

    ,可根据网络应用程序结构过滤请求。

    • Substitute s|.....|...|:

    转换源 s| URL 以匹配目标 | Vultr CDN URL。例如, Substitute s|example.com/images/|cdn-example88.vultrcdn.com/images/|iexample.com/images 请求模式修改为你的 Vultr CDN URL cdn-example88.vultrcdn.com/images
    $1:加载初始请求类型,以匹配正确的 Vultr CDN URL。
    |i : 匹配请求模式中的所有大小写格式。例如, example.com/images/IMAGE.pngexample.com/images/logo.png 都会被修改为相应的 Vultr CDN URL。

    要在配置中匹配其他请求模式,可添加新的 Substitute 指令,将请求模式修改为 Vultr CDN URL。修改后的 Apache 虚拟主机配置应如下所示:

    APACHECONFCopy

    
    Options -Indexes
    Require all granted
    
    ServerName example.com
    DocumentRoot /var/www/html
    DirectoryIndex index.htm index.html
    AddOutputFilterByType SUBSTITUTE text/html
    Substitute s|example.com/images/|cdn-example88.vultrcdn.com/images/|i
    Substitute s|example.com/css/|cdn-example88.vultrcdn.com/css/|i
    Substitute s|example.com/js/|cdn-example88.vultrcdn.com/js/|i
    
    
  6. 测试 Apache 配置是否存在错误。
    $ apachectl configtest
    
  7. 重启 Apache 以应用配置更改。
    $ sudo systemctl restart apache2
    

方法 2:设置重定向

Apache 会使用 mod_rewite 模块将原始请求 URL 重写为 Vultr CDN URL,从而重定向特定请求类型。每个请求模式都会被重定向到相应的 Vultr CDN URL,该 URL 会根据请求提供缓存数据。例如,请求 example.com/image.png 会重定向到 CDN URL cdn-example88.vultrcdn.com/image.png。请按照以下步骤将特定请求模式重定向到你的 Vultr CDN URL。

  1. 启用 Apache mod_rewrite 模块。
    $ sudo a2enmod rewrite
    

    输出:

    Enabling module rewrite.
    To activate the new configuration, you need to run:
    systemctl restart apache2
  2. 重启 Apache 网络服务器以激活模块。
    $ sudo systemctl restart apache2
    
  3. 打开 Apache 虚拟主机配置文件。
    $ sudo nano /etc/apache2/sites-available/example.com.conf
    
    •  在文件的 指令之前添加以下配置。用实际值替换 example.comcdn.example88.vultrcdn.com
      RewriteEngine On
      RewriteCond %{HTTP_HOST} ^example.com
      RewriteRule \.(jpg|jpeg|png|gif|webp|css|js|scss|svg|pdf|txt)$ https://cdn-example88.vultrcdn.com%{REQUEST_URI} [L,R=301]
      

      保存并关闭文件。

      上述配置会将所有符合  .jpeg.jpg.png,,.webp,.js,.css  文件类型的请求重定向到 Vultr CDN URL。在配置中

      RewriteEngine On: 启用 Apache mod_rewrite 模块。
      RewriteCond %{HTTP_HOST} : 设置请求重写条件,以匹配主机域名 URL 模式。
      RewriteRule:以正则表达式格式定义重写匹配请求模式的重定向规则。

      • \.(jpg|jpeg|png|gif|webp|css|js|scss|svg|pdf|txt)

      值会将所有声明文件类型的请求匹配到你的 Vultr CDN URL。例如,请求 https://example.com/image.png 会重定向到 https://cdn-example88.vultrcdn.com/image.png
      [R=301,L]:永久重定向所有匹配请求到你的 Vultr CDN URL,状态代码为 301 Moved PermanentlyL 设置重定向条件 last 重定向,不需要额外的重写规则。

      修改后的 Apache 虚拟主机配置应如下所示:

      
      Options -Indexes
      Require all granted
      
      ServerName example.com
      DocumentRoot /var/www/html
      DirectoryIndex index.htm index.html
      RewriteEngine On
      RewriteCond %{HTTP_HOST} ^example.com
      RewriteRule \.(jpg|jpeg|png|gif|webp|css|js|scss|svg|pdf|txt)$ https://cdn-example88.vultrcdn.com%{REQUEST_URI} [L,R=301]
      
      
  4. 测试 Apache 配置是否存在错误。
    $ apachectl configtest
    
  5. 重新启动 Apache 网络服务器以应用配置更改。
    $ sudo systemctl restart apache2
    

小结

您已经设置了 Apache 网络服务器,将请求模式转发到 Vultr CDN URL。根据您的主机环境,您可以在 .htaccess 文件或虚拟主机配置文件中应用请求转发规则,以提高网络应用程序的性能和用户体验。对于每种配置方法,请查看浏览器开发工具并导航到网络来源选项卡,以验证由 Vultr CDN URL 交付的所有文件。

© 版权声明
THE END
喜欢就支持一下吧
点赞20 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容