国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim Betrieb und Instandhaltung Nginx Nginx-Cache-Konfigurationsplan und L?sung der damit verbundenen Speichernutzungsprobleme

Nginx-Cache-Konfigurationsplan und L?sung der damit verbundenen Speichernutzungsprobleme

May 23, 2023 pm 02:01 PM
nginx cache

5 Optionen für den Nginx-Cache-Cache
1. Einer der herk?mmlichen Caches (404)
Diese Methode besteht darin, den 404-Fehler von Nginx an das Backend weiterzuleiten. und dann verwenden Sie ?proxy_store“, um die vom Backend zurückgegebene Seite zu speichern.
Konfiguration:

  location / {
  root /home/html/;#主目錄
  expires 1d;#網(wǎng)頁(yè)的過期時(shí)間
  error_page 404 =200 /fetch$request_uri;#404定向到/fetch目錄下
  }
  location /fetch/ {#404定向到這里
  internal;#指明這個(gè)目錄不能在外部直接訪問到
  expires 1d;#網(wǎng)頁(yè)的過期時(shí)間
 alias /html/;
 proxy_store會(huì)將文件保存到這目錄下
  proxy_pass//www.jb51.net/;#后端upstream地址,/fetch同時(shí)是一個(gè)代理
  proxy_set_header accept-encoding '';#讓后端不要返回壓縮(gzip或deflate)的內(nèi)容,保存壓縮后的內(nèi)容會(huì)引發(fā)亂子。
  proxy_store on;#指定nginx將代理返回的文件保存
  proxy_temp_path /home/tmp;#臨時(shí)目錄,這個(gè)目錄要和/home/html在同一個(gè)硬盤分區(qū)內(nèi)

  }

Bitte beachten Sie bei der Verwendung, dass Nginx über die Berechtigung zum Schreiben von Dateien unter /home/tmp und /home/html verfügen muss. Unter Linux ist dies im Allgemeinen der Fall Diese beiden Verzeichnisse müssen für die Ausführung als ?nobody“-Benutzer konfiguriert und auf ?nobody“ festgelegt werden. Natürlich k?nnen Sie auch chmod 777 verwenden, aber alle erfahrenen Systemadministratoren empfehlen, 777 nicht zuf?llig zu verwenden .
2. Traditioneller Cache 2 (!-e)
Das Prinzip ist im Grunde das gleiche wie beim 404-Sprung, aber pr?gnanter:

  location / {
  root /home/html/;
  proxy_store on;
  proxy_set_header accept-encoding '';
  proxy_temp_path /home/tmp;
  if ( !-f $request_filename )
  {
  proxy_pass//www.jb51.net/;
  }
  }
# ????# Sie k?nnen sehen, dass diese Konfiguration im Vergleich zu 404 viel Code spart. Sie verwendet !-f, um festzustellen, ob die angeforderte Datei im Dateisystem vorhanden ist. Wenn sie nicht vorhanden ist, wird sie an das Backend übergeben und zurückgegeben auch mit Proxy_store gespeichert.

Beide traditionellen Caches haben grunds?tzlich die gleichen Vor- und Nachteile:
Nachteil 1: Dynamische Links mit Parametern werden nicht unterstützt, wie zum Beispiel read.php?id=1, da Nginx nur den Dateinamen speichert, also diesen Der Link wird nur als read.php im Dateisystem gespeichert, daher werden falsche Ergebnisse zurückgegeben, wenn Benutzer auf read.php?id=2 zugreifen. Gleichzeitig werden die Homepage und das sekund?re Verzeichnis //www.jb51.net/download/ in Form von //www.jb51.net/ nicht unterstützt, da Nginx sehr ehrlich ist und eine solche Anfrage hineinschreiben wird das Dateisystem gem?? dem Link, und dieser Link ist offensichtlich ein Verzeichnis, daher schl?gt das Speichern fehl. In diesen F?llen ist zum korrekten Speichern ein Umschreiben erforderlich.
Nachteil 2: Es gibt keinen Mechanismus für den Cache-Ablauf und die Bereinigung in Nginx. Diese zwischengespeicherten Dateien werden dauerhaft auf dem Computer gespeichert. Wenn viele Dinge zwischengespeichert werden müssen, wird der gesamte Festplattenspeicher belegt . Zu diesem Zweck k?nnen Sie ein Shell-Skript verwenden, um es regelm??ig zu bereinigen, und Sie k?nnen dynamische Programme wie PHP schreiben, um Echtzeit-Updates durchzuführen.
Nachteil 3: Es k?nnen nur 200 Statuscodes zwischengespeichert werden, sodass vom Backend zurückgegebene Statuscodes wie 301/302/404 nicht zwischengespeichert werden, wenn ein pseudostatischer Link mit einer gro?en Anzahl von Besuchen gel?scht wird , wird es nicht zwischengespeichert. Das Eindringen des Stoppers führt dazu, dass das hintere Ende einem erheblichen Druck standh?lt.
Nachteil 4: Nginx w?hlt nicht automatisch Speicher oder Festplatte als Speichermedium. Natürlich wird es im aktuellen Betriebssystem einen Datei-Caching-Mechanismus auf Betriebssystemebene geben Es besteht kein Grund zur Sorge, wenn auf der Festplatte E/A-Leistungsprobleme auftreten, die durch gro?e gleichzeitige Lesevorg?nge verursacht werden.
Die Nachteile des traditionellen Caching von Nginx liegen auch darin, dass es sich von Caching-Software wie Squid unterscheidet, sodass es auch als Vorteil angesehen werden kann. In Produktionsanwendungen wird es oft als Partner mit Squid verwendet und kann Links oft nicht mit ? blockieren, aber Nginx kann deren Zugriff blockieren, wie zum Beispiel: http://jb51.net/?. net / wird auf Squid als zwei Links behandelt, sodass es zwei Penetrationen verursacht, w?hrend Nginx es nur einmal speichert, unabh?ngig davon, ob der Link http://jb51.net/?1 oder http://jb51.net/ wird. ? 123, kann von Nginx nicht zwischengespeichert werden, wodurch der Backend-Host effektiv geschützt wird.
Nginx speichert das Link-Formular sehr originalgetreu im Dateisystem, sodass Sie für einen Link problemlos dessen Cache-Status und Inhalt auf dem Cache-Computer überprüfen und bei Verwendung auch problemlos mit anderen Dateimanagern kommunizieren k?nnen In Verbindung mit rsync usw. handelt es sich vollst?ndig um eine Dateisystemstruktur.
Diese beiden herk?mmlichen Caches k?nnen Dateien unter Linux in /dev/shm speichern, damit der Systemspeicher zum Zwischenspeichern verwendet werden kann, um die Geschwindigkeit der Bereinigung abgelaufener Inhalte zu erh?hen wird viel schneller sein. Wenn Sie /dev/shm/ verwenden, müssen Sie bei einer gro?en Anzahl kleiner Dateien und Verzeichnisse nicht nur das tmp-Verzeichnis auf die Partition /dev/shm verweisen, sondern auch die Anzahl der Inodes und die maximale Kapazit?t dieses Speichers ?ndern Partition:
 # ????#

 mount -o size=2500m -o nr_inodes=480000 -o noatime,nodiratime -o remount /dev/shm

Der obige Befehl wird auf einer Maschine mit 3 g Speicher verwendet, da der standardm??ige maximale Speicher von /dev/shm die H?lfte des Systemspeichers betr?gt, also 1500 m Der Befehl erh?ht es auf 2500 m und gleichzeitig das shm-System Die Anzahl der Inodes reicht standardm??ig m?glicherweise nicht aus, aber das Interessante ist, dass sie nach Belieben angepasst werden kann. Die Anpassung hier auf 480000 ist etwas konservativ. aber im Grunde reicht es.

 

 3. Cache basierend auf Memcached
 nginx unterstützt Memcached, aber die Funktion ist nicht besonders stark und die Leistung ist immer noch sehr gut.
 

 location /mem/ {
  if ( $uri ~ "^/mem/([0-9a-za-z_]*)$" )
  {
  set $memcached_key "$1";
  memcached_pass  192.168.1.2:11211;
  }
  expires 70;
  }

  這個(gè)配置會(huì)將http://jb51.net/mem/abc指明到memcached的abc這個(gè)key去取數(shù)據(jù)。
  nginx目前沒有寫入memcached的任何機(jī)制,所以要往memcached里寫入數(shù)據(jù)得用后臺(tái)的動(dòng)態(tài)語(yǔ)言完成,可以利用404定向到后端去寫入數(shù)據(jù)。
  4、基于第三方插件ncache
  ncache是新浪兄弟開發(fā)的一個(gè)不錯(cuò)的項(xiàng)目,它利用nginx和memcached實(shí)現(xiàn)了一部分類似squid緩存的功能,我并沒有使用這個(gè)插件的經(jīng)驗(yàn),可以參考:
  http://code.google.com/p/ncache/
  5、nginx新開發(fā)的proxy_cache功能
  從nginx-0.7.44版開始,nginx支持了類似squid較為正規(guī)的cache功能,目前還處于開發(fā)階段,支持相當(dāng)有限,這個(gè)緩存是把鏈接用md5編碼hash后保存,所以它可以支持任意鏈接,同時(shí)也支持404/301/302這樣的非200狀態(tài)。
  配置:
  首先配置一個(gè)cache空間:

復(fù)制代碼 代碼如下:


  proxy_cache_path /path/to/cache levels=1:2 keys_zone=name:10m inactive=5m max_size=2m clean_time=1m;


  注意這個(gè)配置是在server標(biāo)簽外,levels指定該緩存空間有兩層hash目錄,第一層目錄是1個(gè)字母,第二層為2個(gè)字母,保存的文件名就會(huì)類似/path/to/cache/c/29/b7f54b2df7773722d382f4809d65029c;keys_zone為這個(gè)空間起個(gè)名字,10m指空間大小為10mb;inactive的5m指緩存默認(rèn)時(shí)長(zhǎng)5分鐘;max_size的2m是指單個(gè)文件超過2m的就不緩存;clean_time指定一分鐘清理一次緩存。

  location / {
  proxy_pass//www.jb51.net/;
  proxy_cache name;#使用name這個(gè)keys_zone
  proxy_cache_valid 200 302 1h;#200和302狀態(tài)碼保存1小時(shí)
  proxy_cache_valid 301 1d;#301狀態(tài)碼保存一天
  proxy_cache_valid any 1m;#其它的保存一分鐘
  }

  ps:支持cache的0.7.44到0.7.51這幾個(gè)版本的穩(wěn)定性均有問題,訪問有些鏈接會(huì)出現(xiàn)錯(cuò)誤,所以這幾個(gè)版本最好不要在生產(chǎn)環(huán)境中使用。nginx-0.7下目前所知較為穩(wěn)定的版本是0.7.39。穩(wěn)定版0.6.36版也是近期更新,如果在配置里沒有使用到0.7的一些新標(biāo)簽新功能,也可以使用0.6.36版。

nginx緩存的內(nèi)存占用問題的一般解決方法
1、前些日子某服務(wù)被刷,每分鐘達(dá)到上幾百萬(wàn)請(qǐng)求;當(dāng)時(shí)采用了nginx cache來解決的;但是因?yàn)槟撤?wù)不能緩存太久,當(dāng)時(shí)設(shè)置了5s,那么帶來的問題就是產(chǎn)生大量小文件,而且很快就刪除了。

2、通過

free -m

Nginx-Cache-Konfigurationsplan und L?sung der damit verbundenen Speichernutzungsprobleme

會(huì)發(fā)現(xiàn)used是27g;但是通過top查看進(jìn)程占的內(nèi)存并沒有那么多

Nginx-Cache-Konfigurationsplan und L?sung der damit verbundenen Speichernutzungsprobleme

那內(nèi)存去哪了?

3、通過查閱資料會(huì)發(fā)現(xiàn)(cat /proc/meminfo)
slab: 22464312 kb
sreclaimable: 16474128 kb (這些是內(nèi)核保持的但是可以釋放的inode和dentry的緩存)
sunreclaim: 5990184 kb

4、這些內(nèi)存為什么會(huì)不自動(dòng)清理呢?
某機(jī)房機(jī)器系統(tǒng)版本:linux 2.6.32-431.el6.x86_64 #1 smp fri nov 22 03:15:09 utc 2013 x86_64 x86_64 x86_64 gnu/linux(正常,沒出現(xiàn)內(nèi)存快到100%的情況)
某機(jī)房機(jī)器系統(tǒng)版本:linux 2.6.32-279.el6.x86_64 #1 smp fri jun 22 12:19:21 utc 2012 x86_64 x86_64 x86_64 gnu/linux (不釋放)

5、通過設(shè)置如下參數(shù)來設(shè)置內(nèi)存閥值

sysctl -w vm.extra_free_kbytes=6436787
sysctl -w vm.vfs_cache_pressure=10000

Das obige ist der detaillierte Inhalt vonNginx-Cache-Konfigurationsplan und L?sung der damit verbundenen Speichernutzungsprobleme. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erkl?rung dieser Website
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

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276
Nginx vs. Apache: Eine vergleichende Analyse von Webservern Nginx vs. Apache: Eine vergleichende Analyse von Webservern Apr 21, 2025 am 12:08 AM

Nginx eignet sich besser zum Umgang mit hohen gleichzeitigen Verbindungen, w?hrend Apache besser für Szenarien geeignet ist, in denen komplexe Konfigurationen und Modulverl?ngerungen erforderlich sind. 1.Nginx ist bekannt für seine hohe Leistung und den niedrigen Ressourcenverbrauch und ist für eine hohe Parallelit?t geeignet. 2.APACHE ist bekannt für seine Stabilit?t und die reichhaltigen Modulverl?ngerungen, die für komplexe Konfigurationsanforderungen geeignet sind.

Nginx und Apache: Verst?ndnis der wichtigsten Unterschiede Nginx und Apache: Verst?ndnis der wichtigsten Unterschiede Apr 26, 2025 am 12:01 AM

Nginx und Apache haben jeweils ihre eigenen Vor- und Nachteile, und die Auswahl sollte auf bestimmten Bedürfnissen beruhen. 1.Nginx ist aufgrund seiner asynchronen nicht blockierenden Architektur für hohe Parallelit?tsszenarien geeignet. 2. Apache eignet sich für Szenarien mit niedriger Konsequenz, die aufgrund seines modularen Designs komplexe Konfigurationen erfordern.

Wie kann ich PHP -Code nach dem Schreiben von PHP -Code ausführen? Mehrere gemeinsame M?glichkeiten, um PHP -Code auszuführen Wie kann ich PHP -Code nach dem Schreiben von PHP -Code ausführen? Mehrere gemeinsame M?glichkeiten, um PHP -Code auszuführen May 23, 2025 pm 08:33 PM

Der PHP -Code kann auf viele Arten ausgeführt werden: 1. Verwenden Sie die Befehlszeile, um den "PHP -Dateinamen" direkt einzugeben, um das Skript auszuführen. 2. Einlegen Sie die Datei in das Dokument -Root -Verzeichnis und greifen Sie über den Browser über den Webserver darauf zu. 3. Führen Sie es in der IDE aus und verwenden Sie das integrierte Debugging-Tool. V.

Nach der Installation von NGINX, dem Konfigurationsdateipfad und der ersten Einstellungen Nach der Installation von NGINX, dem Konfigurationsdateipfad und der ersten Einstellungen May 16, 2025 pm 10:54 PM

Das Verst?ndnis des Konfigurationsdateipfads von NGINX und der ersten Einstellungen ist sehr wichtig, da er der erste Schritt zur Optimierung und Verwaltung eines Webservers ist. 1) Der Konfigurationsdateipfad ist normalerweise /etc/nginx/nginx.conf. Die Syntax kann mit dem Befehl nginx-t gefunden und getestet werden. 2) Die ersten Einstellungen umfassen globale Einstellungen (z. B. Benutzer, Worker_Processes) und HTTP -Einstellungen (z. B. inklusive log_format). Diese Einstellungen erm?glichen die Anpassung und Erweiterung gem?? den Anforderungen. Eine falsche Konfiguration kann zu Leistungsproblemen und Sicherheitslücken führen.

Wie begrenzte ich Benutzerressourcen in Linux? Wie konfiguriere ich Ulimit? Wie begrenzte ich Benutzerressourcen in Linux? Wie konfiguriere ich Ulimit? May 29, 2025 pm 11:09 PM

Linux -System beschr?nkt die Benutzerressourcen durch den Befehl ulimit, um eine überm??ige Verwendung von Ressourcen zu verhindern. 1.ulimit ist ein integrierter Shell-Befehl, mit dem die Anzahl der Dateideskriptoren (-n), die Speichergr??e (-V), die Threadzahl (-U) usw. begrenzt werden kann, die in Soft Limit (aktueller effektiver Wert) und hartem Grenze (maximale Obergrenze) unterteilt sind. 2. Verwenden Sie den Befehl ulimit direkt zur vorübergehenden ?nderung, wie z. B. Ulimit-N2048, ist jedoch nur für die aktuelle Sitzung gültig. 3. Für den dauerhaften Effekt müssen Sie /etc/security/limits.conf- und PAM -Konfigurationsdateien ?ndern und SessionRequiredpam_Limits.so hinzufügen. 4. Der SystemD -Dienst muss Lim in der Einheitsdatei einstellen

Was sind die Debian Nginx -Konfigurationsf?higkeiten? Was sind die Debian Nginx -Konfigurationsf?higkeiten? May 29, 2025 pm 11:06 PM

Bei der Konfiguration von NGINX im Debian -System finden Sie einige praktische Tipps: Die grundlegende Struktur der globalen Einstellungen der Konfigurationsdatei: Definieren Sie Verhaltensparameter, die den gesamten NGINX -Dienst beeinflussen, z. B. die Anzahl der Worker -Threads und die Berechtigungen für laufende Benutzer. Ereignisbearbeitungsteil: Die Entscheidung, wie NGINX mit Netzwerkverbindungen umgeht, ist eine wichtige Konfiguration zur Verbesserung der Leistung. HTTP -Service -Teil: Enth?lt eine gro?e Anzahl von Einstellungen im Zusammenhang mit dem HTTP -Dienst und kann mehrere Server und Standortbl?cke einbetten. Kernkonfigurationsoptionen Worker_Connections: Definieren Sie die maximale Anzahl von Verbindungen, die jeder Worker-Thread verarbeiten kann, normalerweise auf 1024. Multi_accept: Aktivieren Sie den Empfangsmodus mit mehreren Konnection-Empfang und verbessern Sie die F?higkeit der gleichzeitigen Verarbeitung. S

Nginx 'Zweck: Servieren von Webinhalten und mehr Nginx 'Zweck: Servieren von Webinhalten und mehr May 08, 2025 am 12:07 AM

NginxServeswebcontentandactsaSareverseverproxy, Lastballer und More.1) iTeffictyServesTaticContent -LikeHtmlandImages.2) itFunctionsSareverseStaticContent -likeHtmlandImages.2) iTFunctionsAsareverseproxyandAnloadBalancer, DistributingTrafficacrossSservers.3)

NGINX -Fehlerbehebung: Diagnose und L?sung von gemeinsamen Fehlern NGINX -Fehlerbehebung: Diagnose und L?sung von gemeinsamen Fehlern May 05, 2025 am 12:09 AM

Diagnose und L?sungen für h?ufige Fehler von Nginx geh?ren: 1. Protokolldateien anzeigen, 2. Konfigurationsdateien anpassen, 3. Optimieren Sie die Leistung. Durch Analyse von Protokollen, Anpassung der Zeitüberschreitungseinstellungen und Optimierung des Cache und des Lastausgleichs k?nnen Fehler wie 404, 502, 504 effektiv gel?st werden, um die Stabilit?t und Leistung der Website zu verbessern.

See all articles