So installieren Sie Nginx in Docker und konfigurieren den Zugriff über https

So installieren Sie Nginx in Docker und konfigurieren den Zugriff über https

1. Laden Sie das neueste Nginx-Docker-Image herunter

$ docker pull nginx:latest

2. Starten Sie den Nginx-Container

Führen Sie den folgenden Befehl aus, um den Nginx-Container zu starten

docker run --detach \
    --name wx-nginx \
    -p 443:443\
    -p 80:80 \
    -v /home/evan/workspace/wxserver/nginx/data:/usr/share/nginx/html:rw\
    -v /home/evan/workspace/wxserver/nginx/config/nginx.conf:/etc/nginx/nginx.conf/:rw\
    -v /home/evan/workspace/wxserver/nginx/config/conf.d/default.conf:/etc/nginx/conf.d/default.conf:rw\
    -v /home/evan/workspace/wxserver/nginx/logs:/var/log/nginx/:rw\
    -v /home/evan/workspace/wxserver/nginx/ssl:/ssl/:rw\
    -d nginx
  • Mappen Sie Port 443 für HTTPS-Anfragen
  • Ordnen Sie Port 80 für HTTP-Anfragen zu.
  • Das Standard-Homepage-HTML-Speicherverzeichnis von nginx wird dem Host-Festplattenverzeichnis /home/evan/workspace/wxserver/nginx/data zugeordnet.
  • Die nginx-Konfigurationsdatei wird der Host-Festplattendatei /home/evan/workspace/wxserver/nginx/config/nginx.conf zugeordnet.

Hier müssen Sie folgende Dateien vorbereiten:

1. nginx-Konfigurationsdatei

Zuerst kommt die Datei nginx.conf. Die Standardkonfigurationsdatei lautet wie folgt

#Benutzer, der Nginx ausführt, Benutzer nginx;
#Starten Sie den Prozess und stellen Sie ihn so ein, dass er der Anzahl der CPUs entspricht worker_processes 1;

#Der Speicherort des globalen Fehlerprotokolls und der PID-Datei error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

#Arbeitsmodus und Verbindungslimit-Ereignisse {
    #Die maximale Anzahl gleichzeitiger Prozesse für einen einzelnen Hintergrundarbeiter ist auf 1024 festgelegt
  Arbeiterverbindungen 1024;
}


http {
    #MIME-Typ festlegen, einschließlich /etc/nginx/mime.types;
  Standardtyp Anwendung/Oktett-Stream;

    #Legen Sie das Protokollformat fest log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"';

  Zugriffsprotokoll /var/log/nginx/access.log Haupt;

  sendfile an;
  #tcp_nopush ein;

    #Legen Sie das Verbindungs-Timeout-Ereignis keepalive_timeout 65 fest;

    #GZIP-Komprimierung aktivieren #gzip on;

  schließen Sie /etc/nginx/conf.d/*.conf ein;
}

Sie können sehen, dass die letzte Zeile auch eine weitere Konfigurationsdatei conf.d/default.conf enthält, die zur Konfiguration des Serverfelds verwendet wird

Server {
  listen 80; #Hören Sie auf Port 80. Wenn Sie alle Zugriffe auf HTTPS erzwingen, muss diese Zeile gelöscht werden: server_name www.buagengen.com; #Domänenname#charset koi8-r;
  #access_log /var/log/nginx/host.access.log main;

    # Definieren Sie das Indexverzeichnis und den Namen des Homepage-Speicherorts / {
    root /usr/share/nginx/html;
    Index Index.html Index.htm;
  }

  #Definieren Sie die Fehleraufforderungsseite #error_page 404 /404.html;

  #Fehlerseite auf /50x.html umleiten
  Fehlerseite 500 502 503 504 /50x.html;
  Standort = /50x.html {
    root /usr/share/nginx/html;
  }
}

2. Die HTML-Datei der Standard-Homepage von nginx

Sie können dieses HTML selbst definieren, alles ist ausreichend.

Derzeit können Sie direkt über die IP-Adresse auf die von nginx definierte HTML-Datei zugreifen. Allerdings erfolgt der Zugriff derzeit nur über http, ein Zugriff über https ist weiterhin nicht möglich. Sie müssen dem nginx-Server ein Zertifikat hinzufügen.

3. Generieren Sie ein Zertifikat über OpenSSL

Setzen Sie server.key. Sie müssen das Passwort zweimal setzen:

openssl genrsa -des3 -out server.key 1024

Parametereinstellung, zuerst müssen Sie das zuvor festgelegte Passwort eingeben:

openssl req -new -key server.key -out server.csr

Dann müssen Sie die folgenden Informationen eingeben. Füllen Sie sie einfach grob aus, es dient jedenfalls zum Testen

Ländername (2-Buchstaben-Code) [AU]: Name des Staates oder der Provinz (vollständiger Name) [Some-State]: Ortsname (z. B. Stadt) []: Name der Organisation (z. B. Firma) [Internet Widgits Pty Ltd]: Name der Organisationseinheit (z. B. Abteilung) []: 
Allgemeiner Name (z. B. Server-FQDN oder IHR Name) []: Website-Domäne E-Mail-Adresse []: E-Mail-Adresse Bitte geben Sie die folgenden „zusätzlichen“ Attribute ein
wird mit Ihrem Zertifikatsantrag mitgeschickt
Ein Challenge-Passwort []: Geben Sie hier ein Passwort ein. Ein optionaler Firmenname []:

Geben Sie den RSA-Schlüssel ein (Sie müssen außerdem das zuvor festgelegte Passwort eingeben):

openssl rsa -in server.key -out server_nopwd.key

Holen Sie sich den privaten Schlüssel:

openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt

Nach Abschluss dieses Schritts erhalten wir die benötigte Zertifikatsdatei und den privaten Schlüssel.

  • server.crt
  • server.key

4. Konfigurieren Sie den Nginx-Server so, dass er den HTTPS-Zugriff unterstützt

Kopieren Sie die im vorherigen Schritt generierte Datei in das SSL-Verzeichnis auf dem Host, /home/evan/workspace/wxserver/nginx/ssl.

Ändern Sie dann die Konfigurationsdatei default.conf und fügen Sie SSL-Unterstützung hinzu.

Server {
  listen 80; #Hören Sie auf Port 80. Wenn Sie alle Zugriffe über HTTPS erzwingen möchten, muss diese Zeile abgemeldet werden. listen 443 ssl;
  Servername www.buagengen.com; #Domänenname# SSL hinzufügen
  #ssl on; #Wenn Sie HTTPs-Zugriff erzwingen, sollte diese Zeile ssl_certificate /ssl/server.crt öffnen;
  SSL-Zertifikatsschlüssel /ssl/server.key;

  ssl_session_cache geteilt:SSL:1m;
  SSL-Sitzungszeitüberschreitung 5 Min.

   # Geben Sie die Chiffre im von OpenSSL SSL_Protocols SSLv2 SSLv3 TLSv1.2 unterstützten Format an.

   ssl_ciphers HIGH:!aNULL:!MD5; # Methode zur Kennwortverschlüsselung ssl_prefer_server_ciphers on; # Server-Chiffren, die auf den Protokollen SSLv3 und TLSv1 basieren, haben Vorrang vor Client-Chiffren # Definieren Sie das Indexverzeichnis und den Namensort der Homepage / {
    root /usr/share/nginx/html;
    Index Index.html Index.htm;
   }

  #Fehlerseite auf /50x.html umleiten
  Fehlerseite 500 502 503 504 /50x.html;
  Standort = /50x.html {
    root /usr/share/nginx/html;
  }
}

Starten Sie den Nginx-Container neu. Jetzt können Sie über https auf den Nginx-Server zugreifen.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So installieren und konfigurieren Sie Docker nginx
  • Docker-Installation Nginx Tutorial Implementierung Abbildung
  • So installieren Sie Nginx in Docker
  • Installieren Sie Nginx und konfigurieren Sie die Portweiterleitung mit Docker

<<:  Detaillierte Verwendung von React.Children

>>:  MySQL 5.5.56-Version (Installation von Binärpaketen) benutzerdefinierter Installationspfad-Schrittdatensatz

Artikel empfehlen

HTML+CSS-Implementierungscode für abgerundete Rechtecke

Mir war langweilig und plötzlich fiel mir die Impl...

So erstellen Sie YUM in einer Centos7-Umgebung

1. Geben Sie die Konfigurationsdatei der Yum-Quel...

Detaillierte Erläuterung der geplanten MySQL-Aufgaben (Ereignisereignisse)

1. Kurze Einführung in die Veranstaltung Ein Erei...

Eine kurze Diskussion über mehrere aufgetretene Browserkompatibilitätsprobleme

Hintergrund Das Lösen von Browserkompatibilitätsp...

So speichern Sie Bilder in MySQL

1 Einleitung Beim Gestalten einer Datenbank ist e...

JS realisiert die Berechnung des Gesamtpreises der Waren im Warenkorb

JS berechnet den Gesamtpreis der Waren im Warenko...

Methode zum Erstellen eines Redis-Clusters basierend auf Docker

Laden Sie das Redis-Image herunter Docker-Pull yy...

Detaillierte Erklärung der JS-Homologiestrategie und CSRF

Inhaltsverzeichnis Überblick Same-Origin-Policy (...

Methode für die Sicherheitseinstellungen des Tomcat-Servers

Tomcat ist ein HTTP-Server, der die offizielle Re...

So installieren und konfigurieren Sie Docker nginx

Laden Sie das Nginx-Image in Docker herunter Dock...