3 votes

Activer la mise en cache sur nginx

J'ai mon propre VPS avec CentOS 6 et nginx et je veux activer la mise en cache. Pour le tester, s'il est activé avec succès, j'utilise le Google PageSpeed Insight. Mon problème est que je n'ai pas beaucoup d'expérience en ce qui concerne l'activation de la mise en cache et la possibilité de définir la durée de mise en cache d'une image, par exemple, et ainsi de suite. C'est ce que j'ai trouvé sur Internet et essayé jusqu'à présent :

  1. créer des répertoires : /etc/nginx/sites-available et /etc/nginx/sites-enabled parce qu'ils n'ont pas existé en quelque sorte.

  2. Lier les répertoires créés ici : /etc/nginx/nginx.conf en ajoutant include /etc/nginx/sites-enabled/*; à la fin du fichier mais avant le dernier }

  3. Création du fichier /etc/nginx/sites-available/my-site.com.conf :

    server {
    listen       80;
    server_name  localhost;
    
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    
    location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 15d;
    }
    
    location ~*  \.(pdf)$ {
        expires 30d;
    }

    }

  4. Lier le fichier conf : ln -s /etc/nginx/sites-available/my-site.com.conf /etc/nginx/sites-enabled/my-site.com.conf

  5. faire service nginx restart

J'utilise mon site web pour WordPress.

Ainsi, lorsque je teste ma page avec PageSpeed Insight ou d'autres outils de vitesse de page, il est indiqué que je n'utilise pas de cache pour mon header.png, mes javascripts, etc. Mais je n'obtiens pas d'erreurs, même si je vérifie les fichiers de configuration avec nginx -t qui montre ceci :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ai-je oublié quelque chose ?

Voici ma configuration complète de nginx : http://pastebin.com/wxnzzePT

Le site default.conf de la conf.d dossier : http://pastebin.com/KUH2tSrD

0 votes

Veuillez montrer votre configuration nginx complète, il y a certainement d'autres parties de la configuration qui affectent les choses. De plus, vous auriez dû utiliser la méthode native de votre distribution Linux pour ajouter à la configuration de nginx. Le site sites-enabled est utilisé dans les systèmes Debian / Ubuntu, et est présent automatiquement lorsque vous avez installé les paquets nginx.

0 votes

Merci pour votre réponse, j'ai ajouté ma configuration nginx dans mon message original. Comment puis-je ajouter ceci à la configuration nxing avec CentOS ?

0 votes

Je ne connais pas la façon dont CentOS configure nginx.

5voto

Tero Kilkanen Points 32968

Vous devez ajouter les directives de mise en cache à votre fichier default.conf et supprimez ce nouveau fichier que vous avez créé.

Votre nouveau fichier n'est utilisé que lorsque les utilisateurs visitent le site à l'aide de http://localhost . De plus, votre nouvelle configuration de fichiers utilise des chemins d'accès différents de ceux de la configuration de l'application default.conf archivo.

En outre, le root à l'intérieur d'une directive location Le blocage est une mauvaise pratique.

Donc, votre default.conf devrait ressembler à ceci :

#
# The default server
#
server {
    listen       80 default_server;
    server_name  213.165.xx.xx;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    root   /var/www/wordpress;

    location / {
        index  index.html index.htm index.php;

        try_files $uri $uri/ /index.php?q=$request_uri;

    }

    location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 15d;
    }

    location ~*  \.(pdf)$ {
        expires 30d;
    }

    location /admin {
        auth_basic "Administrator Login";
        auth_basic_user_file /var/www/admin/.htpasswd;
    }

    #!!! IMPORTANT !!! We need to hide the password file from prying eyes
    # This will deny access to any hidden file (beginning with a .period)
    location ~ /\. { deny  all; }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           /var/www/wordpress;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X