在Debian上配置LNMP(Linux, Nginx, MySQL/MariaDB, PHP)环境时,使用缓存可以显著提高网站性能。以下是一些常见的缓存方法:
Nginx 可以配置为反向代理服务器,并且可以缓存静态内容。
安装 Nginx:
sudo apt update
sudo apt install nginx
配置缓存目录:
编辑 Nginx 配置文件 /etc/nginx/nginx.conf
或在 /etc/nginx/conf.d/
目录下创建一个新的配置文件,例如 default.conf
。
http {
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
add_header X-Proxy-Cache $upstream_cache_status;
}
location /static/ {
alias /var/www/static/;
expires 30d;
add_header Cache-Control "public";
}
}
upstream backend {
server unix:/var/run/php/php7.4-fpm.sock;
}
}
PHP 可以使用多种缓存扩展来提高性能。
sudo apt install php-opcache
编辑 /etc/php/7.4/cli/php.ini
或 /etc/php/7.4/fpm/php.ini
文件,添加或修改以下配置:
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
MySQL 和 MariaDB 提供了多种缓存机制。
MySQL 8.0 及以上版本已经移除了查询缓存。MariaDB 仍然支持查询缓存。
启用查询缓存:
SET GLOBAL query_cache_size = 64M;
SET GLOBAL query_cache_type = 1;
InnoDB 缓冲池是 InnoDB 存储引擎用于缓存数据和索引的内存区域。
调整缓冲池大小:
编辑 /etc/mysql/my.cnf
或 /etc/my.cnf
文件,添加或修改以下配置:
[mysqld]
innodb_buffer_pool_size = 1G
Redis 和 Memcached 是流行的内存对象缓存系统,可以与 PHP 集成。
sudo apt install redis-server
# 或者
sudo apt install memcached
安装相应的 PHP 扩展:
sudo apt install php-redis
# 或者
sudo apt install php-memcached
编辑 /etc/php/7.4/cli/php.ini
或 /etc/php/7.4/fpm/php.ini
文件,添加扩展:
extension=redis.so
# 或者
extension=memcached.so
通过配置 Nginx 缓存、PHP OPcache、MySQL/MariaDB 缓存以及使用 Redis 或 Memcached,可以显著提高 Debian 上 LNMP 环境的性能。根据具体需求选择合适的缓存策略,并进行相应的配置。