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 虚拟主机配置
- 测试 Apache 配置是否存在错误。
$ apachectl configtest
- 切换到 Apache 数据主目录。
$ cd /etc/apache2/
- 使用您的域名搜索 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
文件。 - 查看虚拟主机配置文件并验证工作中的
DocumentRoot
目录。$ cat /etc/apache2/sites-available/example.com.conf | grep DocumentRoot
Output:
DocumentRoot /var/www/html
- 切换到文档根目录。
$ cd /var/www/html/
- 创建一个新的
images
目录来测试 Apache 请求模式。$ sudo mkdir images
- 切换到目录。
$ cd images
将样本文件上传到该目录,以测试 Apache 的请求模式。
方法 1:设置修改响应
Apache 响应修改会匹配请求,并将原始请求 URL 修改为 Vultr CDN URL。响应修改过程使用 mod_substitute
和 mod_filter
模块来过滤和修改指向你的 Vultr CDN URL 的请求。请按照以下步骤设置响应修改,并将请求模式转发到你的 Vultr CDN。
- 启用 Apache
mod_substitute
模块。$ sudo a2enmod substitute
输出:
Enabling module substitute. To activate the new configuration, you need to run: systemctl restart apache2
- 启用 Apache
mod_filter
模块,按 MIME 类型过滤请求。$ sudo a2enmod filter
- 重启 Apache 以激活模块。
$ sudo systemctl restart apache2
- 使用 Nano 等文本编辑器打开 Apache 虚拟主机配置文件。
$ sudo nano /etc/apache2/sites-available/example.com.conf
- 在文件的
</VirtualHost>
指令之前添加以下配置。用实际值替换example.com
和cdn-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
保存并关闭文件。
上述响应修改配置可匹配
images
,css
或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/png
,image/webp
,可根据网络应用程序结构过滤请求。
Substitute s|.....|...|
:
转换源
s|
URL 以匹配目标|
Vultr CDN URL。例如,Substitute s|example.com/images/|cdn-example88.vultrcdn.com/images/|i
将example.com/images
请求模式修改为你的 Vultr CDN URLcdn-example88.vultrcdn.com/images
。
$1
:加载初始请求类型,以匹配正确的 Vultr CDN URL。
|i
: 匹配请求模式中的所有大小写格式。例如,example.com/images/IMAGE.png
和example.com/images/logo.png
都会被修改为相应的 Vultr CDN URL。要在配置中匹配其他请求模式,可添加新的
Substitute
指令,将请求模式修改为 Vultr CDN URL。修改后的 Apache 虚拟主机配置应如下所示:APACHECONFCopy
<VirtualHost *:80> <Directory /var/www/html/> Options -Indexes Require all granted </Directory> 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 </VirtualHost>
-
- 测试 Apache 配置是否存在错误。
$ apachectl configtest
- 重启 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。
- 启用 Apache
mod_rewrite
模块。$ sudo a2enmod rewrite
输出:
Enabling module rewrite. To activate the new configuration, you need to run: systemctl restart apache2
- 重启 Apache 网络服务器以激活模块。
$ sudo systemctl restart apache2
- 打开 Apache 虚拟主机配置文件。
$ sudo nano /etc/apache2/sites-available/example.com.conf
- 在文件的
</VirtualHost>
指令之前添加以下配置。用实际值替换example.com
和cdn.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
: 启用 Apachemod_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 Permanently
。L
设置重定向条件last
重定向,不需要额外的重写规则。修改后的 Apache 虚拟主机配置应如下所示:
<VirtualHost *:80> <Directory /var/www/html/> Options -Indexes Require all granted </Directory> 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] </VirtualHost>
- 在文件的
- 测试 Apache 配置是否存在错误。
$ apachectl configtest
- 重新启动 Apache 网络服务器以应用配置更改。
$ sudo systemctl restart apache2
小结
您已经设置了 Apache 网络服务器,将请求模式转发到 Vultr CDN URL。根据您的主机环境,您可以在 .htaccess
文件或虚拟主机配置文件中应用请求转发规则,以提高网络应用程序的性能和用户体验。对于每种配置方法,请查看浏览器开发工具并导航到网络或来源选项卡,以验证由 Vultr CDN URL 交付的所有文件。
评论留言