Je veux configurer Nginx comme serveur Web. Je veux avoir des fichiers image mis en cache dans la mémoire (RAM) plutôt que sur le disque. Je sert une petite page et je veux que quelques images soient toujours servies de RAM. Je ne souhaite pas utiliser de vernis (ni d'autres outils de ce type) pour cela, car je pense que Nginx a une capacité de cache le contenu dans la RAM. Je ne suis pas sûr de savoir comment je peux configurer Nginx pour cela? J'ai fait quelques combinaisons, mais ils n'ont pas fonctionné. Nginx utilise le disque tout le temps pour obtenir les images.
Par exemple, lorsque j'ai essayé Apache Benchmark à tester avec la commande suivante:
ab -c 500 -n 1000 http://localhost/banner.jpg
Je reçois l'erreur suivante:
socket: Too many open files (24)
Je suppose que cela signifie NGinx essaie d'ouvrir trop de fichiers simultanément à partir du disque et du système d'exploitation ne permet pas à cette opération. Quelqu'un peut-il me suggérer une configuration correcte?
Une fois que le serveur a lu un fichier sur le disque, il sera mis en cache à la RAM (et sera remplacé par Diffrent Fichier si vous êtes hors de RAM), le problème est avec la limite de votre compte, vous ne pouvez pas ouvrir autant de fichiers ( courir 'ulimit -a'),
Si vous souhaitez modifier cette limite - lisez sur /etc/security/limits.conf
Donc je sais que c'est vraiment vieux mais voilà.
Un fichier mis en cache de fichier RAM est toujours un fichier!
Essayez d'utiliser le module de cache Memcached de NGinx à la place. Mais toujours, 1000 connexions simultanées sont énormes, pensez-vous que votre cas est votre cas?