Maison  >  Article  >  Opération et maintenance  >  Comment résoudre le code tronqué de Docker Nginx

Comment résoudre le code tronqué de Docker Nginx

PHPz
PHPzoriginal
2023-04-04 10:39:381591parcourir

Solution Docker+Nginx au problème de code tronqué

Dans le développement quotidien, nous utilisons souvent Docker pour déployer nos applications, et Nginx, en tant qu'excellent serveur Web, est également largement utilisé dans Docker. Cependant, lorsque nous utilisons Nginx pour déployer des applications, nous rencontrons parfois des caractères chinois ou autres caractères non-ASCII tronqués, ce qui est très pénible. Cet article explique comment résoudre le problème tronqué de Docker + Nginx et rendre l'affichage de votre site Web plus clair et plus précis.

  1. Paramètres d'environnement chinois de Docker

Dans Docker, nous devons définir les paramètres régionaux corrects pour que Nginx puisse analyser correctement les caractères chinois. Les méthodes courantes de configuration de l'environnement chinois du système d'exploitation sont les suivantes :

  • Modifiez le fichier /etc/locale.gen et décommentez les paramètres régionaux requis
  • Exécutez la commande locale-gen pour générer le fichier de paramètres régionaux
  • Exécutez la commande dpkg-reconfigure locales, sélectionnez les paramètres régionaux requis

Cependant, dans Docker, puisque l'image est construite sur la base d'une image de base (telle qu'Ubuntu), les paramètres régionaux de l'image de base ne peuvent pas être directement modifiés. À ce stade, nous pouvons modifier les paramètres régionaux dans Docker en ajoutant le code de script suivant au fichier Docker :

# 设置中文环境
RUN apt-get update && \
    apt-get install -y locales && \
    sed -i 's/# zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/' /etc/locale.gen && \
    echo 'LANG="zh_CN.UTF-8"'>/etc/default/locale && \
    dpkg-reconfigure --frontend=noninteractive locales && \
    update-locale LANG=zh_CN.UTF-8

Le code ci-dessus définira les paramètres régionaux dans Docker sur chinois, afin que Nginx puisse analyser correctement les caractères chinois.

  1. Paramètres de codage des caractères Nginx

En plus des paramètres régionaux dans Docker, nous devons également définir le codage des caractères dans Nginx afin que Nginx puisse restituer correctement les caractères chinois. Dans le fichier de configuration de Nginx, nous pouvons ajouter le code suivant :

http {
    charset utf-8;
    ...
}

Ce code définira le codage des caractères sur UTF-8 pour garantir que Nginx puisse restituer correctement les caractères chinois. Si vous utilisez un autre jeu de caractères, vous devez remplacer Unicode par le nom du jeu de caractères correspondant.

  1. Paramètre du jeu de caractères des ressources statiques Nginx

Dans Nginx, les ressources statiques (telles que les images, JS, CSS) peuvent également avoir des caractères tronqués. À ce stade, nous devons définir le jeu de caractères correct pour les ressources statiques dans le fichier de configuration Nginx. Nous pouvons ajouter le code suivant :

http {
    ...
    charset utf-8;

    location ~* \.(jpg|jpeg|gif|png|bmp|icon|css|js|swf|svg)$ {
        charset utf-8;
    }
    ...
}

Ce code définira le codage des caractères pour les ressources statiques sur UTF-8 pour garantir que Nginx puisse restituer correctement les caractères chinois dans les ressources statiques.

  1. Paramètre du jeu de caractères du document HTML

Enfin, dans le document HTML, nous devons également définir le codage de caractères correct afin que Nginx puisse restituer correctement les caractères chinois. Nous pouvons ajouter le code suivant en tête du document HTML :

<head>
    <meta charset="utf-8">
    ...
</head>

Ce code définira l'encodage des caractères du document HTML sur UTF-8 et garantira que Nginx puisse restituer correctement les caractères chinois qu'il contient.

Résumé

Cet article explique comment résoudre le problème des caractères chinois tronqués dans Docker + Nginx, y compris les paramètres d'environnement chinois Docker, les paramètres de codage de caractères Nginx, les paramètres de jeu de caractères de ressources statiques Nginx et les paramètres de jeu de caractères de document HTML. En suivant les étapes ci-dessus, nous pouvons facilement résoudre le problème des caractères chinois tronqués dans Docker + Nginx et rendre notre site Web plus clair et plus précis.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn