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

So blockieren und verbieten Sie Webcrawler im Nginx-Server

Jede Website stößt normalerweise auf viele Crawle...

Was bei der Migration von MySQL auf 8.0 zu beachten ist (Zusammenfassung)

Passwortmodus PDO::__construct(): Der Server hat ...

So bewerben Sie sich für Webdesign-Jobs

<br />Hallo zusammen! Es ist mir eine Ehre, ...

Aktivierungsmethode für Windows Service 2016 Datacenter\Stand\Embedded (2021)

Führen Sie cmd mit Administratorrechten aus slmgr...

Kann die wiederholbare Leseebene von MySQL Phantomlesevorgänge lösen?

Einführung Als ich mehr über die Datenbanktheorie...

Verwenden Sie Elasticsearch, um Indexdaten regelmäßig zu löschen

1. Manchmal verwenden wir ES Aufgrund begrenzter ...

Linux-Methodenbeispiel zum Anzeigen aller Informationen des Prozesses

Auf dem Server läuft ein Taskprozess. Wenn wir ih...