Site joomla sous nginx TRES lent. Help!

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [Problème] Site joomla sous nginx TRES lent. Help!

    Bonjour
    J'ai deux sites sous joomla 3.x qui tournent sur un raspberry pi et sous nginx. Derrière un freebox.
    Le site par défaut de ma configuration virtual host www.sauvtag.com est très lent.
    en regardant dans les outils réseau de FireFox, je me rends compte que la première requete GET attends presque 5 secondes la réponse de mon serveur.

    Cliquez sur l'image pour l'afficher en taille normale

Nom : sauvtag.jpg 
Affichages : 1 
Taille : 181,3 Ko 
ID : 1823899

    J'ai écarté la piste freebox puisque le deuxième site n'a pas le problème.

    Je suis débutant sous nginx et pas forcément ultra compétent non plus sous joomla.

    Pourriez vous m'aider s'il vous plait?

    J'ai activé le cache conservateur (fichiers) sous Joomla et GZIP. En revanche le plugin system cache est désactivé car rentre en conflit avec Community Builder que j'utilise.

    je dispose de l'extension JCH_optimise (version gratuite)

    coté serveur: GZIP activé aussi, opcache et le cache cgi de nginx

    voici le fichier de conf de mon répertoire site-available


    server {
    listen 80 default_server; ## listen for ipv4; this line is default and implied

    root /var/www/sauvtag.com/;
    index index.html index.htm index.php;

    # Make site accessible from http://localhost/
    server_name sauvtag.com www.sautag.com;

    location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.

    expires 1d;
    try_files $uri $uri/ /index.php?$args;
    # Uncomment to enable naxsi on this location
    # include /etc/nginx/naxsi.rules
    }
    location /doc/ {
    alias /usr/share/doc/;
    autoindex on;
    allow 127.0.0.1;
    allow ::1;
    deny all;
    }

    #cache navigateur
    location ~* \.(js|css|png|jpg|jpeg|JPG|gif|ico|woff)$ {
    expires 7d;
    }


    #error_page 404 /404.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/www;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    #
    # # With php5-cgi alone:
    # fastcgi_pass 127.0.0.1:9000;
    # # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_cache nginxcache;
    fastcgi_cache_key $host$request_uri;
    fastcgi_cache_valid any 2h;
    fastcgi_cache_use_stale off;
    }

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



    et celui de mon serveur nginx
    user www-data;
    worker_processes 4;
    pid /var/run/nginx.pid;

    events {
    worker_connections 768;
    # multi_accept on;
    }

    http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;
    client_max_body_size 3M;
    server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    ##cache config fast cgi

    fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=nginxcache:10m inactive=2h max_size=1g;
    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";

    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    gzip_static on;


    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    }
    Dernière édition par bpollet à 02/02/2016, 13h33
    3 sites en joomla:
    https://www.lacuisinedebertrand.com
    https://www.sauvtag.com
    https://trainingbuddies.tk

  • #2
    Re : Site joomla sous nginx TRES lent. Help!

    Bonjour,

    La configuration de Nginx est correcte dans l'ensemble.
    Je viens de passer sur ton site depuis une connexion 4G Free, sans être un foudre de guerre, le site n'est pas si lent que ça pour de l'auto hébergement (moins de 6 secondes pour la page d'accueil).

    Pour des performances de site, il y a 2 gros points à vérifier
    1. Les performances du serveur
      Le Rasperry Pi (quelle version : A, A+, B, B+ ou 2 ?) n'est pas un mauvais bougre pour son prix. Reste quand même que ses performances, le hardware étant plus ou moins optimisé pour en faire un média center, sont loin d’égaler celles de serveurs dédiés, voire même de serveurs VPS.
      Ensuite, quelle est la classe de la carte SD ou micro SD contenant l'OS et donc Nginx par la même occasion (le TX ou vitesse est indiqué sur la carte ou son emballage). Le SD est très largement plus lent qu'un disque. Si Joomla! y est également installé, normal que ça rame quelque peu. Il vaudrait mieux avoir la partition /var sur un vrai disque dur USB2 rapide.
      Quel OS Linux y est installé ? Suivant les implémentations, les performances peuvent varier grandement, préférer une distribution sans le bazar Xorg et un desktop pour les applications de ce genre.
    2. Les performances du réseau
      A moins d’avoir une Freebox fibre (ta localisation vie un traceroute indiquant une dépendance au DSLAM Versailles, la fibre est possible), le débit montant dune box xDSL est limité, typiquement à 1Mbs si tu n'es pas en bout de ligne.
      Même en fibre, pour peu que les options télé HD soient utilisées sur la box, le débit restant pour ton serveur devient ridicule.


    En bref, pour de l'hébergé chez soi, les performances sont honorables, pour les améliorer, il conviendrait de passer sur un véritable hébergement.
    Pas de demande de support par MP.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

    Commentaire


    • #3
      Re : Site joomla sous nginx TRES lent. Help!

      Merci pour cette réponse.
      je suis en raspberry pi B+. Effectivement je n'ai jamais pensé au fait que la carte SD pouvait être un facteur, mais en lisant ton message cela parait plus que logique.
      Pour l'OS c'est une Raspbian classique...

      Pour ce qui est du réseau. Malheureusement sur Versailles, la fibre c'est pas pour tout de suite. Snif

      En revanche ce qui m'étonne c'est que mon autre site http://www.lacuisinedebertrand.com ne semble pas avoir ce soucis de latence sur la première requête
      3 sites en joomla:
      https://www.lacuisinedebertrand.com
      https://www.sauvtag.com
      https://trainingbuddies.tk

      Commentaire


      • #4
        Re : Site joomla sous nginx TRES lent. Help!

        Un B+, dommage, un 2 est environ 5 fois plus rapide

        L'élément le plus lent de tout serveur reste le disque... Si tu peux passer /var sur un USB externe performant, tu devrais déjà gagner pas mal en vitesse.

        entre les 2 sites, il y a une différence, le registrar, le premier est chez 1&1 avec des DNS en Allemagne (quelques hops de plus à chaque requête), l'autre chez OVH avec DNS Roubaisiens... Également, le premier site requiert une flopée de requêtes DNS en plus, à cause de plugins divers et variés allant à la pêche à Facebook et autres.
        Pas de demande de support par MP.
        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

        Commentaire


        • #5
          Re : Site joomla sous nginx TRES lent. Help!

          C'est franchement une super idée! en plus avec un simple jeu de lien symbolique sur le répertoire /var/www/ je n'ai presque rien à faire.

          Alors autre question, à votre avis:
          - un disque dur USB2?
          - un disque SSD?
          - une clé USB?

          En plus l'idée me permettrai de préparer tranquillou un deuxième raspberry pi 2 cette fois et je n'aurai à qu'à débrancher/rebrancher mon disque dur pour que cela reparte...
          3 sites en joomla:
          https://www.lacuisinedebertrand.com
          https://www.sauvtag.com
          https://trainingbuddies.tk

          Commentaire


          • #6
            Re : Site joomla sous nginx TRES lent. Help!

            La clé USB ne sera que de peu plus rapide que du SD. Un bon disque USB2 classique est le meilleur compromis.
            Dernière édition par jisse03 à 02/02/2016, 15h14
            Pas de demande de support par MP.
            S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

            Commentaire


            • #7
              Re : Site joomla sous nginx TRES lent. Help!

              Merci encore
              3 sites en joomla:
              https://www.lacuisinedebertrand.com
              https://www.sauvtag.com
              https://trainingbuddies.tk

              Commentaire


              • #8
                Re : Site joomla sous nginx TRES lent. Help!

                Alors:
                J'ai pas trouvé de disque usb2 à des tarifs raisonnables (on ne trouve que du 500Go et c'est un peu trop quand même)
                Mais ... J'ai trouvé une clé usb3 (qui me sera très utile lorsque j'aurai un superbe Raspberry pi 2) que j'ai branchée sur mon Raspberry pi B+ (en attendant), formatée en ext4

                J'ai pas déplacé tout mon /var mais seulement le /var/www ainsi que le log et cache nginx

                Code:
                hdparm -tT /dev/sda
                
                /dev/sda:
                 Timing cached reads:   540 MB in  2.00 seconds = 270.00 MB/sec
                 Timing buffered disk reads:  47 MB in 2.00 seconds = 23.84 MB/sec
                ce qui me semble un peu mieux que pour la SD card
                250MB/sec et 17MB/sec respectivement

                J'ai également fait un peu de tuning Mysql

                Et J'ai SURTOUT changé de template (suis passé de JSMDome à Protostar), visiblement le framework de JSDome est très consommateur.

                Ca va BEAUCOUP mieux!

                Mais:
                Contrairement au second site (http://www.lacuisinedebertrand.com) les premieres requetes GET sur le / semblent toujours avoir un délai d'attente TRES LONG.

                https://sauvtag.com
                Dernière édition par bpollet à 11/02/2016, 10h09
                3 sites en joomla:
                https://www.lacuisinedebertrand.com
                https://www.sauvtag.com
                https://trainingbuddies.tk

                Commentaire


                • #9
                  Re : Site joomla sous nginx TRES lent. Help!

                  Tu peux encore tout accélérer en utilisant le CDN Cloudflare https://www.cloudflare.com/
                  Pas de demande de support par MP.
                  S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                  Commentaire


                  • #10
                    Re : Site joomla sous nginx TRES lent. Help!

                    C'est chose faites! Il semblerait que cela soit assez efficace! Merci pour le tuyau, je ne connaissais pas!
                    3 sites en joomla:
                    https://www.lacuisinedebertrand.com
                    https://www.sauvtag.com
                    https://trainingbuddies.tk

                    Commentaire


                    • #11
                      Re : Site joomla sous nginx TRES lent. Help!

                      J'ai pas déplacé tout mon /var mais seulement le /var/www ainsi que le log et cache nginx
                      C'est déjà pas mal, mais quid de /var/lib/mysql, qui est très sollicité et doit quelque peu ramer sur une SD Card
                      Pas de demande de support par MP.
                      S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                      Commentaire


                      • #12
                        Re : Site joomla sous nginx TRES lent. Help!

                        Crois tu qu'un lien symbolique et une copie "à chaud" ferait l'affaire? où dois-je mettre mon site off et faire cela à froid?

                        Je ne te cache pas que ça me fait un peu flipper de déplacer tout ça...
                        3 sites en joomla:
                        https://www.lacuisinedebertrand.com
                        https://www.sauvtag.com
                        https://trainingbuddies.tk

                        Commentaire


                        • #13
                          Re : Site joomla sous nginx TRES lent. Help!

                          Hum, là, mets le site en maintenance, puis arrêtes le serveur MySQL? Transfères tout /var/lib/mysql en préservant les droits (user mysql, group mysql) puis crées le lien symbolique /var/lib/mysql vers ton disue, puis redémarrres MySQL et réactives ton site
                          Pas de demande de support par MP.
                          S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                          Commentaire


                          • #14
                            Re : Site joomla sous nginx TRES lent. Help!

                            Ouais, je vais faire ça ce soir...
                            D'ailleurs, l'autre intérêt que je vois c'est aussi la longévité du matos, il semblerait que les SD card soient assez fragiles...
                            3 sites en joomla:
                            https://www.lacuisinedebertrand.com
                            https://www.sauvtag.com
                            https://trainingbuddies.tk

                            Commentaire


                            • #15
                              Re : Site joomla sous nginx TRES lent. Help!

                              Ça y est ! c'est fait!
                              Y a plus qu'à acheter un Raspberry pi 2 maintenant!
                              3 sites en joomla:
                              https://www.lacuisinedebertrand.com
                              https://www.sauvtag.com
                              https://trainingbuddies.tk

                              Commentaire

                              Annonce

                              Réduire
                              1 sur 2 < >

                              C'est [Réglé] et on n'en parle plus ?

                              A quoi ça sert ?
                              La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                              Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                              Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                              Comment ajouter la mention [Réglé] à votre discussion ?
                              1 - Aller sur votre discussion et éditer votre premier message :


                              2 - Cliquer sur la liste déroulante Préfixe.

                              3 - Choisir le préfixe [Réglé].


                              4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                              2 sur 2 < >

                              Assistance au forum - Outil de publication d'infos de votre site

                              Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                              Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                              Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                              UTILISER À VOS PROPRES RISQUES :
                              L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                              Problèmes connus :
                              FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                              Installation :

                              1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                              Archive zip : https://github.com/AFUJ/FPA/zipball/master

                              2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                              3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                              4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                              5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                              6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                              et remplacer www. votresite .com par votre nom de domaine


                              Exemples:
                              Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/
                              Pour executer le script: http://www..com/fpa-fr.php

                              Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/cms/
                              Pour executer le script: http://www..com/cms/fpa-fr.php

                              En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                              Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                              Voir plus
                              Voir moins

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X