在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 環境的性能。根據具體需求選擇合適的緩存策略,并進行相應的配置。