Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So lösen Sie verstümmelten Docker-Nginx-Code

So lösen Sie verstümmelten Docker-Nginx-Code

PHPz
PHPzOriginal
2023-04-04 10:39:381531Durchsuche

Docker+Nginx-Lösung für das Problem mit verstümmeltem Code

In der täglichen Entwicklung verwenden wir häufig Docker, um unsere Anwendungen bereitzustellen, und Nginx wird als hervorragender Webserver auch häufig in Docker verwendet. Wenn wir jedoch Nginx zum Bereitstellen von Anwendungen verwenden, stoßen wir manchmal auf verstümmelte chinesische oder andere Nicht-ASCII-Zeichen, was sehr beunruhigend ist. In diesem Artikel erfahren Sie, wie Sie das verstümmelte Problem von Docker + Nginx lösen und die Anzeige Ihrer Website klarer und genauer gestalten können.

  1. Docker-Chinesische Umgebungseinstellungen

In Docker müssen wir das richtige Gebietsschema festlegen, damit Nginx chinesische Zeichen korrekt analysieren kann. Übliche Methoden zur Einstellung der chinesischen Betriebssystemumgebung sind wie folgt:

  • Ändern Sie die Datei /etc/locale.gen und kommentieren Sie das erforderliche Gebietsschema aus.
  • Führen Sie den Befehl locale-gen aus, um die Gebietsschemadatei zu generieren.
  • Führen Sie den Befehl dpkg-reconfigure locales aus. Wählen Sie das erforderliche Gebietsschema aus

Da das Image jedoch in Docker auf Basis eines Basis-Images (z. B. Ubuntu) erstellt wird, kann das Gebietsschema des Basis-Images nicht direkt geändert werden. Zu diesem Zeitpunkt können wir das Gebietsschema in Docker ändern, indem wir der Docker-Datei den folgenden Skriptcode hinzufügen:

# 设置中文环境
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

Der obige Code setzt das Gebietsschema in Docker auf Chinesisch, damit Nginx chinesische Zeichen korrekt analysieren kann.

  1. Nginx-Zeichenkodierungseinstellungen

Zusätzlich zu den Gebietsschemaeinstellungen in Docker müssen wir auch die Zeichenkodierung in Nginx festlegen, damit Nginx chinesische Zeichen korrekt wiedergeben kann. In der Nginx-Konfigurationsdatei können wir den folgenden Code hinzufügen:

http {
    charset utf-8;
    ...
}

Dieser Code setzt die Zeichenkodierung auf UTF-8, um sicherzustellen, dass Nginx chinesische Zeichen korrekt wiedergeben kann. Wenn Sie einen anderen Zeichensatz verwenden, müssen Sie Unicode durch den entsprechenden Zeichensatznamen ersetzen.

  1. Einstellung des Zeichensatzes für statische Nginx-Ressourcen

In Nginx können statische Ressourcen (wie Bilder, JS, CSS) auch verstümmelte Zeichen aufweisen. Zu diesem Zeitpunkt müssen wir den richtigen Zeichensatz für statische Ressourcen in der Nginx-Konfigurationsdatei festlegen. Wir können den folgenden Code hinzufügen:

http {
    ...
    charset utf-8;

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

Dieser Code setzt die Zeichenkodierung für statische Ressourcen auf UTF-8, um sicherzustellen, dass Nginx chinesische Zeichen in statischen Ressourcen korrekt wiedergeben kann.

  1. HTML-Dokument-Zeichensatzeinstellung

Schließlich müssen wir im HTML-Dokument auch die richtige Zeichenkodierung festlegen, damit Nginx chinesische Zeichen korrekt wiedergeben kann. Wir können den folgenden Code am Kopf des HTML-Dokuments hinzufügen:

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

Dieser Code setzt die Zeichenkodierung des HTML-Dokuments auf UTF-8 und stellt sicher, dass Nginx die darin enthaltenen chinesischen Zeichen korrekt wiedergeben kann.

Zusammenfassung

In diesem Artikel wird erläutert, wie das Problem verstümmelter chinesischer Zeichen in Docker + Nginx gelöst werden kann, einschließlich der Einstellungen für die chinesische Docker-Umgebung, der Einstellungen für die Nginx-Zeichenkodierung, der Einstellungen für den Zeichensatz für statische Nginx-Ressourcen und der Einstellungen für den Zeichensatz für HTML-Dokumente. Durch Befolgen der oben genannten Schritte können wir das Problem der verstümmelten chinesischen Zeichen in Docker + Nginx leicht lösen und unsere Website klarer und genauer gestalten.

Das obige ist der detaillierte Inhalt vonSo lösen Sie verstümmelten Docker-Nginx-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn