在LNMP(Linux, Nginx, MySQL, PHP)环境下进行缓存优化,可以显著提高网站性能和响应速度。以下是一些常见的缓存优化策略:
Nginx 提供了多种缓存机制,包括代理缓存和FastCGI缓存。
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 {
location / {
proxy_pass http://backend;
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
}
}
}
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=my_fcgi_cache:10m max_size=1g inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
server {
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_cache my_fcgi_cache;
fastcgi_cache_valid 200 302 10m;
fastcgi_cache_valid 404 1m;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
PHP 提供了多种缓存扩展,如 OPcache、APCu 和 Memcached。
sudo apt-get install php-opcache
在 php.ini
中启用:opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
sudo apt-get install php-apcu
在 php.ini
中启用:apcu.enable=1
apcu.shm_size=64M
apcu.ttl=7200
sudo apt-get install php-memcached
在 php.ini
中启用:extension=memcached.so
memcached.sess_consistency=strong
memcached.sess_lock_wait=1000
MySQL 提供了多种缓存机制,如查询缓存、InnoDB 缓冲池和表缓存。
SET GLOBAL query_cache_size = 64M;
SET GLOBAL query_cache_type = 1;
注意:查询缓存在 MySQL 8.0 中已被移除。[mysqld]
innodb_buffer_pool_size = 1G
innodb_buffer_pool_instances = 8
innodb_log_file_size = 256M
innodb_log_buffer_size = 16M
SET GLOBAL table_open_cache = 2000;
SET GLOBAL table_definition_cache = 1000;
通过以上策略,可以在 LNMP 环境下显著提升网站的性能和响应速度。根据具体需求和服务器资源,选择合适的缓存方案进行优化。