Heim >Backend-Entwicklung >PHP-Tutorial >Nginx-Cache-Konfiguration
Nginx-Cache-Konfiguration
Nginx unterstützt Squid-ähnliche Caching-Funktionen ab Version 0.7.48. Dieser Cache behandelt die URL und zugehörige Kombinationen als Schlüssel, verwendet MD5-Codierung und Hashing und speichert sie auf der Festplatte, sodass er jeden URL-Link unterstützen kann und auch Nicht-200-Statuscodes wie 404/301/302 unterstützt. Obwohl der aktuelle offizielle Nginx-Web-Cache-Dienst nur die Ablaufzeit für die angegebene URL oder den Statuscode festlegen kann und die Squid-ähnliche PURGE-Anweisung zum manuellen Löschen der angegebenen Cache-Seite nicht unterstützt, erfolgt dies über ein Nginx-Modul eines Drittanbieters. Der Cache der angegebenen URL kann geleert werden. IT-Netzwerk, http://www.it.net.cn
Der Web-Cache-Dienst von Nginx besteht hauptsächlich aus dem Befehlssatz „proxy_cache“ und dem Befehlssatz „fastcgi_cache“. Proxy Beim Zwischenspeichern des Back-End-Inhaltsquellenservers wird dieser hauptsächlich zum Zwischenspeichern dynamischer FastCGI-Programme verwendet. Die Funktionalität ist bei beiden grundsätzlich gleich.
Proxy_cache und fastcgi_cache sind in der neuesten Version von Nginx 0.8.32 relativ vollständig. Zusammen mit dem ngx_cache_purge-Modul eines Drittanbieters (das zum Löschen des Caches der angegebenen URL verwendet wird) kann es Squid vollständig ersetzen. Wir verwenden die Caching-Funktion „proxy_cache“ von Nginx seit mehr als zwei Monaten in der Produktionsumgebung. Sie ist sehr stabil und die Geschwindigkeit ist Squid nicht unterlegen.
Funktionell verfügt Nginx bereits über die Web-Cache-Beschleunigungsfunktion und die Funktion zum Löschen des angegebenen URL-Cache, die Squid hat. In Bezug auf die Leistung ist die Nutzung von Multi-Core-CPUs durch Nginx viel besser als die von Squid. Darüber hinaus ist Nginx in Bezug auf Reverse-Proxy, Lastausgleich, Gesundheitsprüfung, Back-End-Server-Failover, Umschreiben und Benutzerfreundlichkeit viel leistungsfähiger als Squid. Dadurch kann ein Nginx gleichzeitig als „Lastausgleichsserver“ und „Web-Cache-Server“ verwendet werden.
1. Kompilieren und installieren Sie den Nginx-Lastausgleichs- und Caching-Server unter Linux:
Linux learning, http://linux.it.net.c
ulimit -SHn 65535
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.00.tar.gz
tar zxvf pcre-8.00.tar . gz
wget http://labs.frickle.com/files/ngx_cache_purge-1.0.tar.gz
tar zxvf ngx_cache_purge-1.0.tar.gz
wget http://nginx.org/ download/nginx-0.8.32.tar.gz
tar zxvf nginx-0.8.32.tar.gz
cd nginx-0.8.32/
./configure --user=www --group= www --add-module=../ngx_cache_purge-1.0 --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
cd ../ IT-Netzwerk, http://www.it.net.cn
2. /usr/local/nginx/conf/nginx.conf Der Inhalt der Konfigurationsdatei lautet wie folgt:
IT-Netzwerk, http://www.it.net.cn
Benutzer www www;
worker_processes 8;
error_log /usr/ local/nginx/logs/nginx_error.log crit IT-Netzwerk, http://www.it.net.cn
pid /usr/local/nginx/ logs/nginx.pid ;
#Gibt den Wert für maximale Dateideskriptoren an, die von diesem Prozess geöffnet werden können.
worker_rlimit_nofile 65535;
events
{
use epoll ;
worker_connections 65535;
}
http
{
include mime.types;
default_type application/octet-stream; Linux learning, http:// linux.it.net .cn
#charset utf-8;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_ Größe 300m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60; IT-Netzwerk, http://www.it.net.cn
tcp_nodelay on;
client_body_buffer_size 512k;
Proxy_connect_timeout 5;
Proxy_read_timeout 60;
Proxy_Send_Timeout 5;
Proxy_Buffer_Size 16K;
Proxy_B-Puffer 4 64K; 🎜> Proxy_busy_buffers_size 128k;
Proxy_temp_file_write_size 128k;
IT Network, http://www.it.net.cn
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#Hinweis: Die durch Proxy_temp_path und Proxy_cache_path angegebenen Pfade müssen sich in derselben Partition befinden.
Proxy_temp_path /data0/proxy_temp_dir;
#Setzen Sie den Namen des Web-Cache-Bereichs auf „cache_one“ und die Speichercache-Speicherplatzgröße auf 200 MB , und es wurde 1 Tag lang nicht darauf zugegriffen. Der Inhalt wird automatisch gelöscht und der Festplatten-Cache-Speicherplatz beträgt 30 GB.
Proxy-Cache-Pfad /data0/proxy_cache_dir Ebenen = 1:2 Tasten_z inaktiv = 1d max_size = 30 g;
Server 192.168.8.44:80 Gewicht=1 max_fails=2 fail_timeout=30s;
Server 192.168.8.45:80 Gewicht=1 max_fails=2 fail_timeout=30s;
}
Server
{
server_name www.it.net.cn 192.168.8.42;
index index.html index.htm;
root /data0/htdocs/www
Standort /
{
Proxy_next_upstream http_502 http_504 Fehler Timeout invalid_header;
Proxy_cache Cache_one;
#Setzen Sie unterschiedliche Cache-Zeiten für verschiedene HTTP-Statuscodes
Proxy_cache_valid 200 304 12h;
#Kombiniert mit Domainname, URI, Parametern In Nginx hasht den Schlüsselwert und speichert den zwischengespeicherten Inhalt im sekundären Cache-Verzeichnis
Proxy_cache_key $host$uri$is_args$args;
Proxy_set_header Host $host;
Proxy_set_header .8.42/test.txt, Sie können den Cache dieser URL leeren, indem Sie auf http://192.168.8.42/purge/test.txt zugreifen.
location ~ /purge(/.*)
}
}
Linux learning, http:// linux.it.net.cn
Das Obige stellt die Nginx-Cache-Konfiguration einschließlich der relevanten Aspekte vor. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.