在Nginx和PHP中設置緩存可以提高網站的性能。以下是一些建議來配置Nginx和PHP緩存:
在Nginx中,可以通過配置proxy_cache
指令來啟用緩存。首先,確保已經安裝了Nginx的ngx_http_cache_module
模塊。
編輯Nginx的配置文件(通常位于/etc/nginx/nginx.conf
或/etc/nginx/sites-available/default
),在location
塊中添加以下內容:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
這將緩存靜態文件(如圖片、CSS和JavaScript文件),使其在30天內有效。expires
指令用于設置緩存過期時間,add_header
指令用于添加自定義的緩存控制頭。
如果需要為不同的文件類型設置不同的緩存策略,可以使用if
指令和map
模塊。例如:
http {
map $request_uri $cache_control {
default "public, max-age=86400";
~\.(jpg|jpeg|png|gif|ico|css|js)$ "public, no-transform";
}
...
server {
...
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires $cache_control;
add_header Cache-Control $cache_control;
}
...
}
}
這將緩存所有文件類型,但具有不同的緩存策略。
在PHP中,可以使用OPcache、Memcached或Redis等擴展來實現緩存。以下是使用OPcache的示例:
首先,確保已經安裝了PHP的OPcache擴展。然后,編輯php.ini
文件(通常位于/etc/php/7.x/cli/php.ini
或/etc/php/7.x/apache2/php.ini
),啟用并配置OPcache:
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.validate_timestamps=0
這將啟用OPcache,并設置一些基本參數,如內存消耗、最大加速文件數和驗證頻率。
如果需要使用Memcached或Redis作為緩存后端,可以安裝相應的PHP擴展(php-memcached
或php-redis
),然后在php.ini
文件中配置緩存后端:
extension=memcached.so
memcached.enable=1
memcached.host=127.0.0.1
memcached.port=11211
# 或者
extension=redis.so
redis.enable=1
redis.host=127.0.0.1
redis.port=6379
這將配置PHP使用Memcached或Redis作為緩存后端。
總之,要設置Nginx和PHP緩存,需要根據實際需求選擇合適的緩存策略和技術,并在Nginx和PHP的配置文件中進行相應的設置。