Ich möchte Nginx als meinen Webserver einrichten. Ich möchte, dass Bilddateien im Speicher (RAM) und nicht auf der Festplatte zwischengespeichert werden. Ich bediene eine kleine Seite und möchte, dass immer ein paar Bilder aus dem RAM geliefert werden. Ich möchte hierfür nicht Varnish (oder andere solche Tools) verwenden, da Nginx meiner Meinung nach in der Lage ist, Inhalte im RAM zwischenzuspeichern. Ich bin nicht sicher, wie ich Nginx dafür konfigurieren kann. Ich habe ein paar Kombinationen ausprobiert, aber sie haben nicht funktioniert. Nginx verwendet ständig Festplatten, um die Bilder abzurufen.
Zum Beispiel, als ich Apache Benchmark versuchte, mit folgendem Befehl zu testen:
ab -c 500 -n 1000 http://localhost/banner.jpg
Ich erhalte folgenden Fehler:
socket: Too many open files (24)
Ich denke, dies bedeutet, dass Nginx versucht, zu viele Dateien gleichzeitig von der Festplatte zu öffnen, und das Betriebssystem diesen Vorgang nicht zulässt. Kann mir bitte jemand eine korrekte Konfiguration vorschlagen?
Antworten:
Wenn es sich um statischen Inhalt handelt, wird er standardmäßig im Speicher zwischengespeichert (es sei denn, es ist kein Speicher mehr vorhanden), nur nicht von Nginx, sondern vom Betriebssystem - alles, was auf der Festplatte verbleibt, ist stat ().
Wenn Sie eine 100% ige Speicherlösung wünschen, können Sie einfach die Ramdisk konfigurieren und Daten von dort bereitstellen.
quelle
Sobald der Server eine Datei von der Festplatte gelesen hat, wird sie im RAM zwischengespeichert (und durch eine andere Datei ersetzt, wenn Sie keinen RAM mehr haben). Das Problem liegt in Ihrem Kontolimit. Sie können nicht so viele Dateien öffnen ( run 'ulimit -a'),
Wenn Sie dieses Limit ändern möchten, lesen Sie mehr über /etc/security/limits.conf
quelle
Ich weiß also, dass das wirklich alt ist, aber jetzt geht es los.
quelle
Eine im RAM zwischengespeicherte Datei ist immer noch eine Datei!
Versuchen Sie stattdessen, das Memcached-Cache-Modul von Nginx zu verwenden. Trotzdem sind 1000 gleichzeitige Verbindungen riesig. Glauben Sie, dass dies Ihr Fall ist?
quelle