PluXml.org

Blog ou CMS à l'Xml

Vous n'êtes pas identifié(e).

#26 10/04/2017 21:54:59

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 748
Site Web

Re : Mise à jour de la configuration NGINX

Cool, cela m'évitera de faire le test.

Hors ligne

#27 30/05/2017 09:32:07

Horace
Membre
Lieu : 29900 Concarneau
Inscription : 08/11/2015
Messages : 1
Site Web

Re : Mise à jour de la configuration NGINX

Bonjour à tous,
D’abord, merci à Pluxml !
J’ai commencé un blog local avec EasyPhP sous Win XP, et je suis ravi de la facilité d’usage.
J’ai aussi créé un site, www.reguin-elies.bzh, qui fonctionne très bien, sur un Raspberry Pi,  supporté par NginX.
Vous me voyez venir ?
Donc j’ai regardé un peu la config de NginX, et celle préconisée par PPMarcel me semble tout à fait conforma à mon besoin. Mais je ne suis un gourou ni de Linux, ni de NginX, encore moins de PluxMl config !
Question :
Si je fais un copié-collé de cette config, en changeant simplement la ligne
server_name nom_du_site;
par
www.reguin-elies.bzh,
Ais-je une chance que ça fonctionne sans trop de problème ?
Merci à tous ceux qui voudront bien de pencher sur ma misère !
Je serai absent une semaine, de retour vers le 6 juin, et je me livrerai à cette expérience !
Cordialement
Horace


Si vous me cherchez, je suis dans la cuve !!!

Hors ligne

#28 30/05/2017 22:35:36

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 748
Site Web

Re : Mise à jour de la configuration NGINX

Je suppose que tu fais référence  à cette page du Wiki:
http://wiki.pluxml.org/index.php?page=NGINX_PluXml

Tu as 3 paramètres à ajuster selon ta config:

  • server_name qui correspond au hostname de ton raspberry ou une entrée de ton serveur DNS qui a la même adresse IP

  • root qui correspond au chemin absolu du dossier qui contient PluXml

  • fastcgi_pass: une ligne à choisir selon ta version de PHP. Il faut commenter celle qui n'est pas la bonne.


Pour info, j'ai un orange pi PC+ qui tourne sans souci avec NginX sous Debian et Ubuntu

Dernière modification par bazooka07 (30/05/2017 22:36:10)

Hors ligne

#29 28/08/2017 22:45:19

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 748
Site Web

Re : Mise à jour de la configuration NGINX

@PPmarcel,

Quand on regarde dans l'onglet réseau de l'inspecteur Web de Firefox les entêtes échangés entre le navigateur et le serveur, on s'aperçoit qu'à chaque changement de page, le navigateur va interroger le serveur pour savoir si la balise Etag a été modifiée pour chaque fichier faisant parti de la page demandée, en particulier css, javascript, images,  ...
Certes le serveur répond seulement si la balise Etag a changé ou pas. Mais à chaque fois, il y a un délai pour chaque réponse.

Et cela parce que le serveur ne dit pas jusqu'à quand sont valides les fichiers déjà envoyés ( La fameuse date de péremption sur les boites de conserves )

Pour remédier à cela il suffit juste de rajouter quelques règles pour notre beau serveur Nginx :

[== NGINX ==]
# https://www.theodo.fr/blog/2016/06/improve-the-performance-of-your-webapp-configure-nginx-to-cache/
# http://www.supinfo.com/articles/single/2843-implementer-cache-navigateur-avec-nginx

# cache-control
location /data/ {
	add_header Cache-Control public;
	expires 12h;
}
location /core/ {
	add_header Cache-Control public;
	expires 12h;
}
location /plugins/ {
	add_header Cache-Control public;
	expires 12h;
}
location /themes/ {
	add_header Cache-Control public;
	expires 12h;
}

Les 2 commentaires ci-dessus renvoient des sites où j'ai pêché les infos.

Les gains sont assez impressionnants.

Il doit certainement exister un équivalent pour Apache2 mais il faut que j'aille lire le manuel.

Je te laisse faire tes tests et mettre à jour le wiki.

Note générale.
On voit depuis quelques versions de PluXml  que le numéro est ajouté aux liens vers les fichiers CSS et autres.
Cela me semble inutiles car les fichiers sont signés avec leurs balises ETag. Donc s'il y a changement de versions, leurs balises Etags vont changer.
Un peu de lecture:
https://fr.wikipedia.org/wiki/Balise-en … _ETag_HTTP

Hors ligne

#30 31/08/2017 20:17:55

PPmarcel
Membre
Inscription : 21/06/2010
Messages : 249
Site Web

Re : Mise à jour de la configuration NGINX

Bonjour Bazooka,

Pour apache l'équivalent est le module expire : https://httpd.apache.org/docs/2.4/fr/mo … pires.html

Comment vois-tu les gains ? Pour un asset donné, par exemple un script .js, je vois bien un temps d'attente même lorsque l'objet est en cache dans le navigateur. Je suppose que c'est de ce délai dont tu parles ?

Ce que je ne comprends pas c'est que même en ajoutant un header expire j'ai tout de même ce délai qui apparaît pour cet asset. Qu'obtiens-tu de ton côté ?

En revanche sous chrome un objet en cache = 0 secondes, je n'avais pas remarqué ce phénomène du coup.

Hors ligne

#31 31/08/2017 21:48:15

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 748
Site Web

Re : Mise à jour de la configuration NGINX

Dans Firefox, l'inspecteur Web a un onglet pour le réseau avec les échanges entre le navigateur et le serveur.
Attention quand on clique la 1ère fois, il faut recharger la page html pour que l'inspecteur Web étudie les échanges.
Si le serveur envoie un code 304, cela veut dire que le fichier sur le serveur n'a pas chargé depuis le dernier téléchargement.
Mais si le serveur envoie ce code 304, c'est qu'avant le navigateur a fait une requête au serveur pour savoir si le fichier a chargé.
Et selon le trafic réseau, le serveur mettra un temps plus ou moins long pour répondre.

Par contre si le code est 200, cela peut signifie 2 choses:
Si le 1er téléchargement du fichier, le serveur envoie le code 200 avec le fichier. Mais il envoie la date du fichier et une signature Etag qui est calculé à partir du contenu du fichier.
Et si le serveur est bien configuré, il envoie la date d'expiration du fichier, paramétrable sur le serveur, et le droit de mettre le fichier en cache.

Quand on passe à une autre page et qui a besoin du même fichier (css ou js par exemple), si on a pas dépassé la date d'expiration, le navigateur va chercher le fichier dans son cache. Ce qui évite d'attendre la réponse du serveur pour savoir si le fichier a changé, plus le temps de transfert du fichier sur le réseau .
Et l'onglet de l'inspecteur affiche "mise en cache".

Attention que sur Chrome en mode développeur, il y a une case à cocher pour refuser l'utilisation du cache pour les fichiers.

Dernière modification par bazooka07 (31/08/2017 21:49:01)

Hors ligne

#32 01/09/2017 11:32:53

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 525
Site Web

Re : Mise à jour de la configuration NGINX

Une vidéo qui est utile pour comprendre un peu mieux : https://www.grafikart.fr/tutoriels/php/ … dified-788


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#33 01/09/2017 15:44:25

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 748
Site Web

Re : Mise à jour de la configuration NGINX

La vidéo est orientée côté programmation PHP.

La config que j'ai proposé est orientée côté serveur.
Elle prend non seulement en compte les scripts PHP, mais aussi tous les fichiers statiques images, pages HTML, feuilles CSS, scripts Javascript

Dommage que la vidéo ne finisse pas en parlant de la date d'expiration qui évite de solliciter le serveur pendant un certain pour savoir si quelque chose a changé.
Peut-être dans une porchaine vidéo.

Hors ligne

#34 05/09/2017 18:46:33

PPmarcel
Membre
Inscription : 21/06/2010
Messages : 249
Site Web

Re : Mise à jour de la configuration NGINX

Salut Bazooka,

Merci pour le tips de l'inspecteur de contenu, c'est ce sur quoi je m'appuyais déjà pour mes tests. smile
La semaine dernière je constatais temps de chargement sur les objets sur mon site de test malgré les expires, mais tout est OK sur mon site de prod apparemment.
Mettons donc ça à l'écart.

De mon côté j'utilise aussi des règles d'expiration. Je ne les avais pas incluses dans le template afin de garder le template minimaliste (les plus connaisseurs pouvant le changer au besoin).

Mais si tu estimes que cela vaut vraiment le coup d'avoir une politique de cache par défaut, on va l'ajouter. Je te propose une règle un peu plus scalpel pour paramétrer les expires :

location ~* (css|gif|png|js|woff|woff2|ttf|eot|jpg|jpeg)$ {
    add_header Cache-Control public;
    expires     12h;
}

C'est un peu plus concis et ça ne cible vraiment que le contenu statique. Qu'en penses-tu ?

Dernière modification par PPmarcel (05/09/2017 18:47:05)

Hors ligne

#35 05/09/2017 21:22:40

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 748
Site Web

Re : Mise à jour de la configuration NGINX

Salut PPMarcel,

Je compte déjà des absents dans la liste des extensions très populaires :
pdf, ico, txt, html, ....

Je suis plus enclin à utiliser des règles plus restrictives basées sur des dossiers,  quitte à rajouter quelques règles plus précises pour quelques cas particuliers.
Les règles basées sur le nom exact des répertoires sont plus rapides que les régles à base d'expressions régulières.

Je désapprouve totalement ce mélange de fichiers statiques javascript et autres avec des scripts php dans le dossier core/lib de PluXml.
Cela ne facilite pas la gestion du serveur et ce n'est pas courant.

En toute modestie, je préfère les miennes.

Je pense qu'il faut rajouter ces règles au template, sinon les gens n'auront pas conscience de leurs existences. Des docs en français sur Nginx ne sont pas très nombreuses.

On peut les mettre en commentaires pour éviter de perturber les gens.

Hors ligne

#36 15/09/2017 17:02:15

PPmarcel
Membre
Inscription : 21/06/2010
Messages : 249
Site Web

Re : Mise à jour de la configuration NGINX

Bazooka,

J'ai testé ta configuration. Ce qui me faisait peur c'était le risque de cacher du contenu dynamique dans des plugins tel que le plxCapchaImage.
Mais à priori l'expire n'est pas appliqué au capcha.php. Nous nous restera donc à voir si des utilisateurs constatent des effets de bord.

J'ai donc ajouté tes directives de cache dans les templates de configuration par défaut et pas en commentaire. Après tout c'est une grande amélioration.

Ceci dit je les ai tout de même adaptés sous forme de regex afin de préserver la lisibilité de la configuration. Même si les regex sont plus coûteuses que des expressions simples, elles doivent rester négligeables sur le temps traitement.

Dernière modification par PPmarcel (15/09/2017 17:03:30)

Hors ligne

#37 15/09/2017 19:12:20

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 748
Site Web

Re : Mise à jour de la configuration NGINX

Mon avis perso:
J'aurais laissé chaque config séparée pour 3 raisons:
- on gagne un peu en vitesse
- dès qu'on parle expressions régulières, les rangs des troupes s'éclaircissent. Il y a qu'à regarder dans PluXml pour avoir un état de l'Art.
- data, le fameux de dossier de données, apparait plusieurs fois dans la config. L'idée serait de remplacer par une constante à déclarer au début. Il serait alors aisé de renommer ce dossier sans risque. Par expèrience, quand on commence à faire des répétitions, les modifs deviennent chronophages après coup. D'où ma tendance à paramètrer "à mort" en déclarant des constantes. A priori cela semble possible avec nginx.conf mais je n'ai pas encore testé.

Prochaine étape : avoir un fichier de config intégré dans le dossier readme de la prochaine version de PluXml.
Il y a de plus en plus de gens qui s'installent chez eux un petit serveur avec un Raspberry Pi et en général on préconise Nginx à la place d'Apache2.

Hors ligne

Pied de page des forums

A propos Nous soutenir Contact Twitter Google+
Copyright © 2006-2017 PluXml.org, tous droits réservés