Heim >Backend-Entwicklung >PHP-Tutorial >Nginx-Cache-Konfiguration

Nginx-Cache-Konfiguration

WBOY
WBOYOriginal
2016-07-30 13:31:46948Durchsuche

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


cd pcre-8.00/
./configure
make && make install
cd ../

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 on;

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
{

listen 80;

server_name www.it.net.cn 192.168.8.42;
index index.html index.htm;
root /data0/htdocs/www

Standort /
{

#Wenn der Backend-Server Fehler wie 502, 504, Ausführungszeitüberschreitung usw. zurückgibt, wird die Anforderung automatisch an einen anderen Server im Upstream-Lastausgleichspool weitergeleitet, um ein Failover zu erreichen.

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(/.*)

{
#Legen Sie nur die angegebene IP oder den angegebenen IP-Bereich fest, um den URL-Cache zu leeren.
127.0.0.1 zulassen;
192.168.0.0/16 zulassen;
alle verweigern;
Proxy_cache_purge Cache_one $host $1$is_args$args;
}
# Dynamische Anwendungen mit Erweiterungen, die auf .php, .jsp, .cgi enden, werden nicht zwischengespeichert.
location ~ .*.(php|jsp|cgi)?$
{
Proxy_set_header Host $host;
Proxy_set_header X-Forwarded-For $remote_addr;
Proxy_pass http://backend_server ;
}
access_log off;

}
}
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.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn