在配置 PHP 和 Nginx 以支持动态内容压缩时,需要确保两者之间的协同工作。以下是一个基本的配置示例,展示了如何在 Nginx 中启用 PHP 动态内容的压缩。
首先,确保你已经安装了 Nginx 和 PHP-FPM。你可以使用包管理器来安装它们:
# 安装 Nginx
sudo apt update
sudo apt install nginx
# 安装 PHP-FPM
sudo apt install php-fpm
编辑 Nginx 的默认配置文件 /etc/nginx/sites-available/default
或创建一个新的配置文件 /etc/nginx/sites-available/yourdomain
。
sudo nano /etc/nginx/sites-available/yourdomain
将以下内容粘贴到配置文件中:
server {
listen 80;
server_name yourdomain.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据你的 PHP 版本调整
}
location ~ /\.ht {
deny all;
}
# 启用 gzip 压缩
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}
在上面的配置中,gzip on;
和相关的 gzip_*
指令启用了 gzip 压缩。Nginx 会自动压缩动态内容(如 PHP 生成的页面),并将其发送给客户端。
保存配置文件后,重启 Nginx 和 PHP-FPM 以应用更改:
sudo systemctl restart nginx
sudo systemctl restart php7.4-fpm # 根据你的 PHP 版本调整
打开浏览器,访问你的网站,然后检查网络请求的响应头,确认是否包含 Content-Encoding: gzip
。
curl -I http://yourdomain.com
你应该会看到类似以下的响应头:
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Encoding: gzip
...
这表明动态内容已经被成功压缩并发送给客户端。
fastcgi_pass
指令中指定的版本一致。gzip_comp_level
和其他 gzip 参数以优化压缩效果和性能。通过以上步骤,你应该能够在 Nginx 中成功配置 PHP 动态内容的压缩。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。