在开始优化前,必须对网站当前状态进行精确诊断,避免盲目操作。
登录宝塔面板,进入网站管理页面,点击左侧“监控”选项卡。记录以下关键数据:
同时,使用在线工具进行外部诊断。在服务器终端执行以下命令,获取网站首页加载的详细瀑布图数据:
curl -o /dev/null -s -w "时间统计:\n总时间: %{time_total}s\nDNS解析: %{time_namelookup}s\n建立连接: %{time_connect}s\nSSL握手: %{time_appconnect}s\n准备传输: %{time_pretransfer}s\n首字节时间: %{time_starttransfer}s\n重定向时间: %{time_redirect}s\n下载速度: %{speed_download} B/s\n" https://你的网站域名
通过浏览器开发者工具(F12)的“网络”选项卡,加载网站首页。记录:
这部分优化是性能提升的基础,直接影响网站的承载能力。
进入宝塔面板的“软件商店”,找到已安装的PHP版本,点击“设置”。
性能调整:
禁用函数:点击“禁用函数”标签页,确保以下可能影响网站程序正常运行的函数未被禁用:putenv, proc_open, pcntl_signal。如果使用了特定的图像处理库,还需确保exec, shell_exec等函数状态符合程序要求。
进入宝塔面板的“软件商店”,找到MySQL,点击“设置”。
配置修改:点击“配置修改”标签页,找到以下关键参数进行修改:
innodb_buffer_pool_size = 服务器物理内存的 50%-70%
例如,4G内存服务器可设置为:innodb_buffer_pool_size = 2G
query_cache_size = 64M
max_connections = 300
wait_timeout = 600
interactive_timeout = 600
注意:修改后必须重启MySQL服务才能生效。
数据库表优化:对于机械设备网站,产品表、新闻表是查询重点。定期在宝塔面板的“数据库”页面,选择对应的数据库,进入“管理”(phpMyAdmin)。执行以下SQL语句优化关键表:
OPTIMIZE TABLE `你的产品表名`;
OPTIMIZE TABLE `你的新闻表名`;
并为常用查询条件字段(如产品分类ID、状态、发布时间)添加索引。
机械设备网站通常图片多、规格参数复杂,这是优化的重点。
在宝塔面板的网站设置中,点击“伪静态”旁边的“配置”。如果网站是WordPress,选择对应的WordPress规则。然后点击左侧“文件”菜单,进入网站根目录。
步骤一:修改Nginx配置文件
点击网站设置页面的“配置文件”选项卡。在server { ... }块内,location ~ .\.(gif|jpg|jpeg|png)$ { ... }部分(如果没有则添加),修改或添加如下内容:

location ~ \.(jpg|jpeg|png|gif)$ {
expires 365d; 缓存一年
add_header Cache-Control "public, immutable";
尝试提供WebP格式,如果浏览器支持且文件存在
if ($http_accept ~ "webp") {
set $webp_extension "_webp";
}
add_header Vary Accept;
try_files $uri$webp_extension $uri =404;
}
步骤二:使用宝塔插件批量转换
在宝塔面板“软件商店”搜索“图片压缩”插件并安装。安装后,在插件页面:
/wp-content/uploads/(WordPress)或/uploads/。.webp文件。对于非CMS的机械设备企业站,如果静态文件是手动管理的,可以使用宝塔的“网站静态文件压缩”功能。
进入网站设置页面,找到“静态文件压缩”功能(通常在高级设置或安全标签页下)。
开启Gzip/Brotli压缩:直接勾选“开启Gzip压缩”和“开启Brotli压缩”(如果Nginx版本支持)。
手动合并CSS/JS(适用于简单站点):将多个CSS文件内容复制到一个文件(如all.css),多个JS文件合并到一个文件(如all.js)。然后在网页模板中,只引用这一个CSS和一个JS文件。合并后,使用在线工具(如cssminifier.com, javascript-minifier.com)进行压缩,将压缩后的代码替换原文件内容。
正确配置缓存是提升访问速度最有效的手段。
安装Redis:在宝塔“软件商店”搜索Redis并安装。
PHP安装Redis扩展:进入PHP设置页面,点击“安装扩展”,选择“redis”进行安装。
网站程序配置:根据你的网站程序配置Redis连接。以ThinkPHP 6为例,修改config/cache.php:
'redis' => [
'type' => 'redis',
'host' => '127.0.0.1',
'port' => 6379,
'password' => '', // 如果Redis设置了密码则填写
'select' => 0, // 数据库编号
'timeout' => 0,
'persistent' => false, // 是否长连接
],
并将默认缓存驱动改为'default' => 'redis'。
在宝塔面板的网站设置中,点击“配置文件”。在server { ... }块内添加以下规则,对静态化页面或公共片段进行缓存:
缓存产品列表页、详情页(假设URL模式可识别)
location ~ ^/(product|news)/detail-\d+\.html$ {
proxy_cache cache_zone;
proxy_cache_key $scheme$proxy_host$request_uri;
proxy_cache_valid 200 304 12h; 缓存12小时
add_header X-Cache-Status $upstream_cache_status;
expires 12h;
try_files $uri $uri/ /index.php?$args;
}
定义缓存路径和参数(放在http块内,如果已有则调整参数)
proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache_zone:100m inactive=24h max_size=1g use_temp_path=off;
注意:添加proxy_cache_path需要放在Nginx主配置的http { ... }块内,可以在宝塔面板点击“文件”,进入/www/server/nginx/conf/nginx.conf进行添加。
优化后的网站需要稳定的安全环境。
通过宝塔面板的“文件”管理,进入网站根目录:
uploads、cache等需要写入的目录外,所有目录权限设置为755。.env, config.php)的权限设置为644,并确保文件所有者是www(或nginx)用户,而非root。uploads等上传目录,权限设置为755,并确保目录下的文件不可执行。可以在该目录下创建一个.user.ini文件(如果使用PHP),内容为open_basedir = /www/wwwroot/你的网站目录/:/tmp/,限制PHP脚本的活动范围。设置宝塔面板的“计划任务”:
!/bin/bash
检查磁盘使用率
df -h | grep /www
检查内存使用率
free -m
清理7天前的Nginx代理缓存(如果使用了proxy_cache)
find /tmp/nginx_cache -type f -mtime +7 -delete
echo "维护任务于 $(date) 执行完成"
定期查看网站错误日志(宝塔面板网站设置页面的“日志”选项卡),根据PHP警告或错误调整代码或配置。
完成以上所有步骤后,再次使用第一步的诊断工具进行测试,对比优化前后的数据,所有关键指标(首字节时间、完全加载时间、页面大小)应有显著改善。后续只需定期执行维护任务即可保持网站最佳性能状态。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图