http_sub_module
Tout d'abord, nous devons nous assurer que Nginx a été correctement compilé et installé avec les modules et activés http_ssl_module
. Vous pouvez suivre les étapes ci-dessous :
-
Téléchargez et décompressez le code source Nginx, puis entrez dans le répertoire décompressé.
wget https://nginx.org/download/nginx-1.23.0.tar.gz
-
Exécutez les commandes suivantes pour compiler et installer Nginx :
./configure --prefix=/user/local/nginx --with-http_sub_module --with-http_ssl_module make sudo make install
Cela compilera et installera Nginx avec
http_sub_module
et activéhttp_ssl_module
. -
Une fois l'installation terminée, vous pouvez exécuter la commande suivante pour vérifier que Nginx est correctement activé
http_sub_module
:/user/local/nginx/sbin/nginx -V
Dans la sortie, vous devriez pouvoir voir
--with-http_sub_module
les informations.
Ensuite, nous allons modifier le fichier de configuration Nginx pour ajouter du code JavaScript personnalisé dans la réponse HTML. Suivez les étapes ci-dessous :
-
Ouvrez le fichier de configuration Nginx. Par défaut, ce fichier se trouve dans
/user/local/nginx/conf/nginx.conf
-
À la place, ajoutez le bloc de configuration suivant :
server { listen 9999; location / { sub_filter '</body>' '<script>console.log("hello from Judith")</script></body>'; sub_filter_once off; root html; index index.html; } }
Cela appliquera la directive sous tous les chemins demandés
sub_filter
et</body>
remplacera par<script>console.log("hello from Judith")</script></body>
.Notez que
listen
les instructions peuvent être modifiées selon vos besoins pour convenir à votre situation. -
Enregistrez et fermez le fichier de configuration Nginx.
-
Vérifiez le fichier de configuration pour les erreurs de syntaxe :
/user/local/nginx/sbin/nginx -t
S'il n'y a pas d'erreurs, un message indiquant que la syntaxe du fichier de configuration est correcte s'affiche.
-
Redémarrez Nginx pour que les modifications prennent effet :
sudo /user/local/nginx/sbin/nginx -s reload
ou
sudo systemctl reload nginx
-
Visitez la figure suivante dans le navigateur
, vous pouvez voir que ce code js a été ajouté au html
Affichez le contenu du fichier source index.html, comme indiqué dans la figure ci-dessous, il n'y a pas console.log("hello from Judith")
de code de ce type dans le fichier source index.html
Désormais, lorsque le client visitera la page HTML fournie par Nginx, Nginx utilisera sub_filter
la directive </body>
pour remplacer par <script>console.log("hello from Judith")</script></body>
, ajoutant ainsi un code JavaScript personnalisé dans le HTML.
De cette façon, nous pouvons facilement utiliser sub_filter
les modules Nginx pour modifier la réponse HTML et ajouter du code JavaScript personnalisé si nécessaire.
J'espère que ce blog vous a été utile ! Si vous avez d'autres questions, n'hésitez pas à les poser.