КЭШИРОВАНИЕ NGINX PHP FPM
Кэширование является важной техникой оптимизации производительности в веб-разработке. Сочетание Nginx и PHP-FPM можно использовать для улучшения производительности вашего сайта. Nginx является быстрым и легковесным веб-сервером, который может использоваться для обслуживания статического контента. PHP-FPM (FastCGI Process Manager) позволяет разделить обработку PHP-кода на отдельные процессы, что повышает производительность и позволяет управлять использованием ресурсов. Они могут быть сконфигурированы для кэширования динамического контента, что позволяет сократить время обработки запросов и уменьшить нагрузку на сервер.Пример кода на PHP для кэширования результатов выполнения функции может выглядеть следующим образом:
function get_data() { $data = false; $cache_key = 'cache_key'; //check if cache key exists in cache if (apc_exists($cache_key)) { $data = apc_fetch($cache_key); } else { //if not in cache, query database for data $data = query_database_for_data(); //store data in cache for next request apc_add($cache_key, $data, 60); //60 seconds as a cache time } return $data;}
Этот код проверяет, есть ли ключ в кэше, и, если есть, использует данные из кэша. Если ключа нет в кеше, он запрашивает данные из базы данных и сохраняет их в кэше для использования при следующем запросе.Кроме того, вы можете сконфигурировать Nginx, чтобы кэшировать статический контент и установить время жизни кэша:location /static/ { #enable caching proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=static_cache:10m inactive=60m; proxy_cache_key "$scheme$request_method$host$request_uri"; #serve cached content if available and not expired proxy_cache_revalidate on; proxy_cache_valid 200 60m; #pass requests to PHP-FPM for dynamic content fastcgi_pass unix:/var/run/php-fpm.sock; include fastcgi_params;}
Этот код настраивает локацию для кэширования статического контента и передачи динамического контента PHP-FPM для обработки. Proxy_cache_path устанавливает путь к каталогу кэша и настройки, а proxy_cache_valid устанавливает время жизни кэша. При наличии кэшированных данных nginx возвращает их клиенту, минуя PHP-FPM, сэкономив при этом ресурсы сервера и уменьшив время ответа сервера.
Настройка связки nginx и php-fpm
Apache против Nginx. Apache есть место в 2019м? Сравнение двух лидирующих HTTP серверов
Настройка Nginx для эффективной работы с Wordpress и PHP-FPM
Настройка кэширования в Nginx для ускорения сайтов (Николай Лавлинский)
Настройка кэширования в Nginx
Настройка nginx wordpress php-fpm. Nginx или apache для wordpress? Почему nginx?
Установка NGINX и php-fpm в Ubuntu 20.04