Accélérez les performances de Nginx avec Ngx_PageSpeed ​​sur CentOS 7

Accélérez les performances de Nginx avec Ngx_PageSpeed ​​sur CentOS 7

Nginx [Le moteur X] est un serveur Web libre et open-source, de la plate-forme, un serveur Web puissant et un logiciel proxy inversé écrit en C. Il s'agit également d'un serveur proxy IMAP / POP3 et TCP / UDP standard, et peut être utilisé comme équilibreur de chargement.

Nginx est un serveur HTTP bien connu (comparable au serveur HTTP Apache) alimentant de nombreux sites sur le Web; Il est populaire pour ses performances hautes et sa stabilité.

Il existe divers facteurs importants à considérer lorsque vous souhaitez améliorer l'expérience utilisateur sur votre site, y compris la vitesse du site et la vitesse de la page (également connue sous le nom de temps de chargement de page). Si votre site est alimenté par Nginx, vous pouvez utiliser ngx_pagespeed dans ce but.

Lire suggérée: Installer mod_pagespeed pour améliorer les performances du serveur Apache

Ngx_pagespeed est un module Nginx gratuit et open source utilisé pour améliorer la vitesse des sites ainsi que pour réduire le temps de chargement de la page. Il réduit considérablement le temps nécessaire aux utilisateurs pour voir et interagir avec le contenu de votre site.

NGX_PAGEPEED Fonctionnalités:

  • Prise en charge des HTTPS et du contrôle d'URL.
  • Optimisation d'image: décapage des métadonnées, redimensionnement dynamique, recompression.
  • CSS & JavaScript Minification, concaténation, inclinaison et découverte.
  • Petite ressource enlin.
  • Représenter l'image et le chargement JavaScript.
  • Réécriture HTML.
  • Extension de la durée de vie du cache.
  • Permet de configurer plusieurs serveurs et bien d'autres.

Dans ce tutoriel, nous montrerons comment installer Nginx avec ngx_pagespeed et tester toute l'installation sur Rhel / centos 7.

Attention: Les utilisateurs de Debian et Ubuntu peuvent suivre ce guide pour installer NGX_PageSpeed ​​pour améliorer les performances Nginx.

Étape 1: Installez Nginx à partir de la source

1. À installer Nginx avec ngx_pagespeed vous oblige à le compiler à partir de la source. Installez d'abord tous les packages requis pour compiler Nginx à partir de la source comme celle-ci.

# yum install wget gcc cmake unzip gcc-c ++ pcre-devel zlib-devel ou # yum group installer "les outils de développement" 
Installer des outils de développement sur Centos 7

2. Ensuite, obtenez des fichiers source de la dernière version de Nginx (1.13.2 au moment de la rédaction de cet article) en utilisant la commande wget et extraire la balle de goudron téléchargée comme ci-dessous.

# mkdir ~ / téléchargements # cd ~ / téléchargements # wget -c https: // nginx.org / download / nginx-1.13.2.le goudron.GZ # TAR -XZVF Nginx-1.13.2.le goudron.gz 
Télécharger les fichiers source nginx

3. Ensuite, téléchargez les fichiers source NGX_PageSpeed ​​et les fichiers compressés unzip.

# wget -c https: // github.com / pagespeed / ngx_pagespeed / archive / v1.12.34.2-stable.zip # unzip v1.12.34.2-stable.zipper 
Télécharger ngx_pagespeed

4. Déménagez maintenant dans le répertoire NGX_PAGESPEED UNSIPPING et obtenez les bibliothèques d'optimisation Pagespeed pour compiler Nginx comme suit.

# cd ngx_pagespeed-1.12.34.2-stable / # wget -c https: // dl.Google.com / dl / page-vitesse / psol / 1.12.34.2-X64.le goudron.GZ # TAR -XVZF 1.12.34.2-X64.le goudron.gz 
Télécharger les bibliothèques d'optimisation PagesPeed

Étape 2: Configurer et compiler Nginx avec NGX_PageSpeed

5. Maintenant allez dans le nginx-1.13.2 répertoire et configurez la source nginx en exécutant les commandes ci-dessous.

# cd ~ / téléchargements / nginx-1.13.2 # ./ configure --add-module = $ home / downloads / ngx_pagespeed-1.12.34.2-stable / --User = Nobody --group = Nobody --error-log-path = / var / log / nginx / error.log --http-log-path = / var / log / nginx / access.log --pid-path = / var / run / nginx.pid $ ps_ngx_extra_flags 
Configurer nginx avec ngx_pagespeed

6. Ensuite, compilez et installez Nginx comme suit.

# faire # faire l'installation 
Compiler nginx avec ngx_pagespeed

7. Une fois le processus d'installation terminé, créez tous les liens symboliques nécessaires pour nginx.

# ln -s / usr / local / nginx / conf / / etc / nginx / # ln -s / usr / local / nginx / sbin / nginx / usr / sbin / nginx 
Créer des liens symboliques nginx

Étape 3: Création d'un fichier unitaire Nginx pour systemd

8. Ensuite, depuis systemd est le init système Centos 7, Vous devez créer manuellement le fichier unitaire Nginx pour cela.

Fisrt, créez le fichier / lib / systemd / system / nginx.service, Ensuite, saisissez le fichier de service Nginx Systemd Coller la configuration du fichier unitaire dans le fichier ci-dessous.

# vi / lib / systemd / system / nginx.service 

Prenez note de l'emplacement du Pidfile et le Nginx Binaire que vous définissez lors de la configuration et de la compilation de Nginx, vous les définissez dans les variables appropriées dans le fichier unitaire comme indiqué ci-dessous:

[Unité] Description = le serveur de proxy Nginx HTTP et inversé après = syslog.réseau cible.Target Remote-FS.cibler NSS-Lookup.Tible [Service] type = FORKING PIDFILE = / var / run / nginx.pid execstartpre = / usr / sbin / nginx -t execstart = / usr / sbin / nginx exeleload = / bin / kill -s Hup $ mainpid execstop = / bin / kill -s QUIT $ MainPid privateTMP = true [install] wantedBy = multi-° -utilisateur.cible 
Fichier de l'unité de service Nginx Systemd

Enregistrez le fichier et fermez-le.

9. À ce stade, commencez nginx Service pour le temps moyen et activer le démarrage de System Boot en exécutant les commandes ci-dessous.

# systemctl start nginx # systemctl activer nginx # statut systemctl nginx 
Démarrer et activer Nginx

Étape 4: Configurer Nginx avec module PagesPeed

dix. Avec Nginx installé, ensuite, vous devez activer Ngx_pagespeed module. Commencez par créer un répertoire où le module mettra en cache les fichiers de votre site Web et définira les autorisations appropriées sur ce répertoire avec les commandes ci-dessous.

# mkdir -p / var / ngx_pagespeed_cache # chown -r personne: personne / var / ngx_pagespeed_cache 
Créer un répertoire de cache Nginx

11. Maintenant, il est temps de permettre Ngx_pagespeed module, ouvrez le fichier de configuration Nginx et ajoutez les lignes ci-dessous.

Important: Si vous avez configuré des hôtes virtuels Nginx sur le serveur, ajoutez les directives Pagespeed ci-dessus à chaque bloc de serveur pour activer NGX_PageSpeed ​​sur chaque site.

# vi / etc / nginx / nginx.confli 

Ajouter Ngx_pagespeed lignes de configuration dans le bloc du serveur.

# Pagespeed Paramètres principaux Pagespeed sur; pagespeed filecachepath / var / ngx_pagespeed_cache; # Assurez-vous que les demandes de ressources optimisées PagesPeed vont au gestionnaire de pages # et aucun en-têtes étrangères n'est défini. Emplacement ~ "\.PageSpeed ​​\.([a-z] \.)?[a-z] 2 \.[^.]dix\.[^.] + "add_header" "" "; Location ~" ^ / ngx_pagespeed_static / " Location ~" ^ / ngx_pagespeed_beacon " 

Ce qui suit est un exemple de travail du fichier de configuration Nginx avec Ngx_pagespeed activé dans l'hôte virtuel par défaut.

Configuration Nginx avec Ngx_PageSpeed
#User personne; Worker_Processes 1; #Error_log Journaux / erreur.enregistrer; #Error_log Journaux / erreur.Avis du journal; #Error_log Journaux / erreur.Infos de journal; #pid journaux / nginx.pid; Événements Worker_Connections 1024;  http inclure mime.les types; Default_type Application / Octet-Stream; #log_format main '$ Remote_addr - $ Remote_user [$ time_local] "$ request"' # '$ status $ body_bytes_sent "$ http_referrer"' # '"$ http_user_ager" "$ http_x_forwardedd_for"'; #ACCESS_LOG LOGS / Access.journal principal; SendFile sur; #TCP_NOPUSH ON; #keepalive_timeout 0; keepalive_timeout 65; #gzip sur; Server écouter 80; server_name localhost; #Charset KOI8-R; #ACCESS_LOG LOGS / HOST.accès.journal principal; # Pagespeed Paramètres principaux Pagespeed sur; pagespeed filecachepath / var / ngx_pagespeed_cache; # Assurez-vous que les demandes de ressources optimisées PagesPeed vont au PagesPeed # Manageur et aucun en-têtes étrangères n'est défini. Emplacement ~ "\.PageSpeed ​​\.([a-z] \.)?[a-z] 2 \.[^.]dix\.[^.] + "add_header" "" "; Location ~" ^ / ngx_pagespeed_static / " Location ~" ^ / ngx_pagespeed_beacon " emplacement / root html; Index index.index html.htm;  #Error_Page 404/404.html; # Rediriger les pages d'erreur du serveur vers la page statique / 50X.HTML # ERROR_PAGE 500 502 503 504 / 50X.html; Emplacement = / 50x.html root html;  # Proxy les scripts PHP à écouter Apache sur 127.0.0.1:80 # #Location ~ \.php $ # proxy_pass http: // 127.0.0.1; # # Passez les scripts PHP à FastCGI Server écoutant sur 127.0.0.1: 9000 # #Location ~ \.php $ # root html; # fastcgi_pass 127.0.0.1: 9000; # index fastcgi_index.PHP; # fastcgi_param script_filename / scripts $ fastcgi_script_name; # inclut fastcgi_params; # # refuser l'accès à .Fichiers htaccess, si la racine du document d'Apache # concorde avec l'une # #location ~ / \.ht # nier tout; # # Un autre hôte virtuel utilisant le mixage de la configuration ip-, name- et basée sur le port # #Server # écouter 8000; # Écoutez SomeName: 8080; # server_name Somememe alias un autre.alias; # emplacement / # root html; # Index d'index.index html.htm; # # # HTTPS Server # #Server # écouter 443 SSL; # server_name localhost; # ssl_certificate Cert.pem; # ssl_certificate_key Cert.clé; # ssl_session_cache partagée: ssl: 1m; # ssl_session_timeout 5m; # SSL_CIPHERS HIGH:!anull:!MD5; # ssl_prefer_server_ciphers sur; # emplacement / # root html; # Index d'index.index html.htm; # # 

12. Ensuite, assurez-vous que le fichier de configuration Nginx est sans erreur en exécutant la commande ci-dessous, vous verrez la sortie ci-dessous si tout va bien.

# nginx -t 
Vérifiez la configuration de Nginx pour les erreurs

13. Enfin, redémarrez le serveur Nginx pour que les modifications prennent effet.

# systemctl redémarrer nginx 

Étape 5: Tester Nginx avec NGX_PAGSEPEED

14. Savoir si Ngx_pagespeed fonctionne maintenant en conjonction avec nginx, il doit apparaître dans le X-PAGE-SPEED entête.

# curl -i -p http: // localhost 
Tester nginx avec ngx_pagespeed

Dans le cas où vous n'avez pas vu l'en-tête ci-dessus, puis revenez à l'étape 11 et suivez soigneusement les instructions pour activer Ngx-Pagespeed avec les étapes suivantes.

Référentiel GitHub Ngx-Pagespeed: https: // github.com / pagespeed / ngx_pagespeed

C'est tout! Dans ce didacticiel, nous avons montré comment installer et configurer Nginx avec le module NGX_PAGSEPEED pour optimiser et améliorer les performances du site et réduire le temps de chargement de la page.

Pour sécuriser le serveur Web Nginx, lisez cet article - le guide ultime pour sécuriser, durcir et améliorer les performances du serveur Web Nginx.

Comme toujours, n'hésitez pas à nous faire part de questions ou de pensées concernant ce tutoriel.