Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zum Registrieren eines kostenlosen Accounts finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Wenn Sie Ihre Übung abgeschlossen haben, ersetzen Sie diese Werte durch spezifische Werte für Ihre Cloud-Umgebung.
Mit Oracle Cloud Infrastructure einen Webserver veröffentlichen, auf den über das Internet zugegriffen werden kann, mit IPv6
Einführung
In diesem Tutorial wird erläutert, wie wir einen Webserver (OCI-Instanz) in Oracle Cloud Infrastructure (OCI) erstellen können. Außerdem wird dieser Webserver über das Internet zugänglich gemacht. Wir werden diesen Webserver nicht nur über eine öffentliche IPv4-Adresse zugänglich machen, sondern ihn auch über die öffentliche IPv6-Adresse zugänglich machen, wobei die DNS-Datensätze (FQDN) vollständig konfiguriert sind.
Hinweis: Die Domains, die wir in diesem Tutorial verwendet haben, wurden nur zu Testzwecken erstellt und konfiguriert.
Ziele
-
Erstellen Sie eine Website mit einer OCI-Instanz, die über IPv6 erreichbar ist. Wir haben auch erklärt, wie man alle anderen Voraussetzungen erstellt und konfiguriert, um die Website schließlich verfügbar zu machen. Als Bonus haben wir auch erklärt, wie der NGINX Webserver installiert ist und wie PHP integriert ist. Endlich stellen wir eine benutzerdefinierte PHP-Website oder ein benutzerdefiniertes Skript zur Verfügung, mit dem Sie die Konnektivität von IPv4 oder IPv6 mit Ihrem Webserver prüfen können und wenn Sie eine Verbindung mit HTTP oder HTTPS herstellen.
- Aufgabe 1: Erstellen Sie ein neues VCN mit aktiviertem IPv6.
- Aufgabe 2: Neues Subnetz mit aktiviertem IPv6 erstellen.
- Aufgabe 3: Erstellen Sie eine neue Instanz mit aktiviertem IPv6.
- Aufgabe 4: Erstellen Sie ein neues Internetgateway, und konfigurieren Sie das Routing.
- Aufgabe 5: Öffnen Sie HTTP und HTTPS in der Standardsicherheitsliste.
- Aufgabe 6: Installieren Sie einen Webserver auf dieser Instanz.
- Aufgabe 7: DNS-Datensätze konfigurieren.
- Aufgabe 8: Erstellen Sie eine benutzerdefinierte Website mit NGINX und PHP.
- Aufgabe 9: Testen Sie den Webserver aus dem Internet.
Aufgabe 1: Neues VCN mit aktiviertem IPv6 erstellen
-
Öffnen Sie das Hamburger-Menü, und klicken Sie auf Virtuelles Cloud-Netzwerk.
- Stellen Sie sicher, dass Sie im Menü die Option Virtuelle Cloud-Netzwerke auswählen.
- Wählen Sie das Compartment aus, in dem Sie arbeiten möchten. Wenn Sie das Compartment nicht eingerichtet haben, verwenden Sie das Root Compartment.
- Klicken Sie auf VCN erstellen.
-
Geben Sie unter Virtuelle Cloud-Netzwerke erstellen die folgenden Informationen ein.
- VCN-Namen eingeben.
- Wählen Sie das Compartment erneut aus, wenn es noch nicht vorab aufgefüllt wurde.
- Wählen Sie das IPv4 CIDR aus, das Sie in diesem VCN verwenden möchten. Für dieses Tutorial haben wir ein /16-CIDR verwendet, da IPv4 Subnetze (in der Regel /24) aus dieser CIDR-Uhr herausgeschnitten werden.
- Blättern Sie nach unten.
- Für IPv6 wird ein von Oracle zugewiesenes Präfix zugewiesen. Wählen Sie Von Oracle zugewiesenes /56-Präfix zuweisen aus.
- Klicken Sie auf VCN erstellen.
Wir haben jetzt ein neues VCN mit neuen Netzwerkbereichen IPv4 und IPv6 erstellt, mit denen wir Subnetze IPv4 und IPv6 Carve ausführen können.
Aufgabe 2: Neues Subnetz mit aktiviertem IPv6 erstellen
-
Klicken Sie auf Subnetz erstellen.
-
Geben Sie in Subnetz die folgenden Informationen ein.
- Geben Sie den Namen des Subnetzes ein.
- Wählen Sie das Compartment aus, in dem sich dieses Subnetz befinden muss, sofern es noch nicht vorab aufgefüllt wurde.
- Für den Subnetztyp wählen Sie vorerst Regional aus.
- Geben Sie das Subnetz IPv4 ein, das aus dem im VCN zugewiesenen CIDR-Block Carveout wird. Stellen Sie sicher, dass der neue /24-CIDR-Block in den Bereich /16 fällt, der im VCN bestimmt wurde.
- Blättern Sie nach unten.
- Für IPv6 wird ein von Oracle zugewiesenes Präfix zugewiesen. Wählen Sie Von Oracle zugewiesenes /64-Präfix zuweisen aus.
- Wählen Sie eine neue HEX-Dezimalstelle aus, um das von Oracle zugewiesene Präfix abzuschließen.
- Wählen Sie die Standardroutentabelle für das VCN aus.
- Machen Sie das Subnetz öffentlich, damit wir öffentliche IP-Adressen erhalten, wie wir dies benötigen, um den Webserver über das Internet zugänglich zu machen.
- Blättern Sie nach unten.
- Wählen Sie das Standard-DHCP für das VCN aus.
- Wählen Sie die Standardsicherheitsliste für das VCN aus.
- Klicken Sie auf Subnetz erstellen.
-
Beachten Sie, dass das neu erstellte Subnetz den Status Provisioning wird ausgeführt hat.
Nach einigen Minuten ist der Status des neuen Subnetzes Verfügbar.
Jetzt kann das Subnetz für die Adressen IPv4 und IPv6 verwendet werden.
Aufgabe 3: Neue Instanz mit aktiviertem IPv6 erstellen
-
Öffnen Sie die OCI-Konsole.
- Klicken Sie in der oberen linken Ecke auf das Hamburger-Menü.
- Klicken Sie im gepinnten Abschnitt auf Instanzen.
-
Klicken Sie auf Instanz erstellen.
-
Geben Sie unter Compute-Instanz erstellen die folgenden Informationen ein.
- Geben Sie den Namen der Instanz ein.
- Wählen Sie das Compartment aus, in dem sich die Instanz befinden muss.
- Wählen Sie aus, in welcher Availability-Domain Sie diese Instanz platzieren möchten. Für dieses Tutorial haben wir als Nordwestregion der Niederlande nur eine Availability-Domain.
- Blättern Sie nach unten.
Behalten Sie die Standardeinstellung bei, und scrollen Sie nach unten.
- Wählen Sie unter Primäres Netzwerk die Option Vorhandenes virtuelles Cloud-Netzwerk auswählen aus.
- Das in Aufgabe 1 erstellte VCN wurde ausgewählt.
- Wählen Sie für das Subnetz die Option Vorhandenes Subnetz auswählen aus.
- Wählen Sie das in Aufgabe 2 erstellte Subnetz aus.
- Blättern Sie nach unten.
- Private IPv4-Adresse: Wählen Sie Private IPv4-Adresse automatisch zuweisen aus.
- IPv6-Adresse: Wählen Sie IPv6-Adressen aus Subnetzpräfix zuweisen aus, das beim Erstellen des Subnetzes in Aufgabe 2 konfiguriert wurde.
- IPv6-Adresszuweisung: Wählen Sie Private IPv6-Adresse automatisch aus Präfix zuweisen aus.
- Blättern Sie nach unten.
- Um auf diese Linux-Instanz zuzugreifen und sie zu verwalten, müssen Sie mit SSH-Schlüsseln arbeiten. In diesem Tutorial lässt OCI ein neues SSH-Schlüsselpaar generieren.
- Laden Sie die privaten und öffentlichen Schlüssel auf den lokalen Rechner herunter, damit wir nach der Erstellung auf diese Linux-Instanz zugreifen und diese verwalten können.
-
Klicken Sie auf Erstellen, um die Instanz zu erstellen.
- Während der Erstellung wird der Status der Instanz PROVISIONING angezeigt.
- Beachten Sie, dass noch keine IP-Adressdetails verfügbar sind.
- Wenn die Instanz vollständig erstellt und bereit ist, wird der Status auf Wird ausgeführt gesetzt.
- Beachten Sie, dass die IP-Adressdetails jetzt verfügbar sind.
Die nächste logische Aufgabe besteht darin, mit SSH auf die Instanz zuzugreifen, damit die Installation und Konfiguration des Webservers gestartet werden kann. Wenn wir versuchen, mit der öffentlichen IPv4-Adresse und dem Private Key eine Verbindung zum Webserver herzustellen, können wir keine Verbindung herstellen, da das in Aufgabe 1 erstellte VCN kein Internetgateway hat. Jetzt müssen wir dieses Internetgateway zuerst im VCN erstellen und außerdem das Routing konfigurieren.
Aufgabe 4: Neues Internetgateway erstellen und Routing konfigurieren
Um den Zugriff auf eine neue Instanz (Webserver) aus dem Internet zu ermöglichen, zunächst SSH und schließlich den Übergang zu HTTP, müssen wir ein Internetgateway einrichten.
-
Öffnen Sie die OCI-Konsole.
- Gehen Sie zu Virtuelle Cloud-Netzwerke.
- Wählen Sie das in Aufgabe 1 erstellte VCN aus.
-
Klicken Sie auf der Seite VCN-Details auf Internetgateways.
-
Klicken Sie auf Internetgateway erstellen.
-
Geben Sie unter Internetgateway erstellen die folgenden Informationen ein.
- Geben Sie den Namen ein.
- Compartment auswählen.
- Klicken Sie auf Internetgateway erstellen.
-
Fügen Sie eine Routingregel hinzu.
- Beachten Sie, dass das Internetgateway verfügbar ist.
- Klicken Sie auf Routentabellen.
- Beachten Sie, dass die Standardroutentabelle eine
0
in der Anzahl der Regeln enthält. - Klicken Sie auf Standardroutentabelle.
- Protokollversion: Wählen Sie IPv4 aus.
- Zieltyp: Wählen Sie Internetgateway aus.
- Ziel-CIDR-Block: Wählen Sie für dieses Tutorial
0.0.0.0/0
aus, da der gesamte standardmäßige IPv4-Netzwerktraffic zum Internetgateway geleitet werden soll. - Wählen Sie das oben in dieser Aufgabe erstellte Ziel-Internetgateway aus.
- Klicken Sie auf Routingregeln hinzufügen.
- Beachten Sie, dass die neue Standardroutenregel IPv4 erstellt wurde.
- Um IPv6-Internettraffic weiterzuleiten, müssen Sie auch eine neue IPv6-Standardinternetregel erstellen. Klicken Sie erneut auf Routingregeln hinzufügen.
- Protokollversion: Wählen Sie IPv6 aus.
- Zieltyp: Wählen Sie Internetgateway aus.
- Ziel-CIDR-Block: Wählen Sie für dieses Tutorial
:/0
aus, da der gesamte standardmäßige IPv6-Netzwerktraffic zum Internetgateway geleitet werden soll. - Wählen Sie das oben in dieser Aufgabe erstellte Ziel-Internetgateway aus.
- Klicken Sie auf Routingregeln hinzufügen.
-
Beachten Sie, dass die neue Standardroutenregel IPv6 erstellt wurde.
- Wir stellen über SSH eine Verbindung zur neu erstellten Instanz mit dem Private Key her.
- Nachdem die Verbindung erfolgreich hergestellt wurde, führen Sie den Befehl
IP a
aus, um die IP-Adressen zu prüfen. - Beachten Sie, dass die private IPv4-Adresse mit der für die Instanzdetails angegebenen Adresse identisch ist.
- Außerdem testen Sie die Verbindung mit dem macOS-CLI-Terminal, und führen Sie den
ssh -i ssh-key-2024-02-05.key opc@xxx.xxx.xxx.48
-Befehl aus. - Nachdem die Verbindung erfolgreich hergestellt wurde, führen Sie den Befehl
IP a
aus, um die IP-Adressen zu prüfen. - Beachten Sie, dass die private IPv4-Adresse mit der für die Instanzdetails in der OCI-Konsole angegebenen Adresse identisch ist.
Beachten Sie, dass die Instanz nicht über die Adresse IPv6 verfügt, die für die Instanzdetails in der OCI-Konsole angegeben wurde.
-
Dieses Problem kann durch einen Neustart der Instanz behoben werden.
- Navigieren Sie zur Instanz.
- Klicken Sie auf Neu starten.
- Stellen Sie mit dem Private Key erneut eine SSH-Verbindung zur Instanz her.
- Nachdem die Verbindung erfolgreich hergestellt wurde, führen Sie den Befehl
IP a
aus, um die IP-Adressen zu prüfen. - Beachten Sie, dass die private IPv4-Adresse mit der in den Instanzdetails angegebenen Adresse identisch ist.
- Beachten Sie, dass die private IPv6-Adresse mit der in den Instanzdetails angegebenen Adresse identisch ist.
- Um die Konnektivität zum Internet zu testen, pingen wir auch an die IP-Adresse IPv6 eines der DNS-Server von Google.
- Führen Sie einen Schnelltest aus, um zu prüfen, ob eine Verbindung zu einer Instanz mit einer IPv6-Adresse hergestellt werden kann. Führen Sie zum Testen den Befehl
ssh -i ssh-key-2024-02-05.key opc@2603:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
aus. - Nachdem die Verbindung erfolgreich hergestellt wurde, führen Sie den Befehl
IP a
aus, um die IP-Adressen zu prüfen. - Beachten Sie, dass die private IPv4-Adresse mit der in den Instanzdetails angegebenen Adresse identisch ist.
- Beachten Sie, dass die private IPv6-Adresse mit der in den Instanzdetails angegebenen Adresse identisch ist.
Aufgabe 5: HTTP und HTTPS in der Standardsicherheitsliste öffnen
Wenn ein neues VCN erstellt wird, wird eine Standardsicherheitsliste auf die Subnetze in diesem VCN angewendet. Standardmäßig sind ICMP und SSH eingehend (Ingress) zulässig. Wir müssen HTTP und HTTPS zu dieser Liste hinzufügen, um eingehenden Traffic für den Webserver zuzulassen.
-
Klicken Sie auf das Hamburger-Menü, und wählen Sie Virtuelle Cloud-Netzwerke aus.
-
Klicken Sie auf das in Aufgabe 1 erstellte VCN.
-
Blättern Sie nach unten.
-
Klicken Sie auf Sicherheitslisten.
-
Klicken Sie auf Standardsicherheitsliste.
-
Klicken Sie auf Ingress-Regeln hinzufügen.
-
Fügen Sie neue Sicherheitsregeln für IPv4-Netzwerktraffic hinzu.
- Quelltyp: Wählen Sie CIDR aus.
- Quell-CIDR: Geben Sie "
0.0.0.0/0
" ein. - IP-Protokoll: Wählen Sie TCP aus.
- Quellportbereich: Behalten Sie den Standardwert bei (Alle).
- Zielportbereich: Wählen Sie
80,443
(HTTP und HTTPS) aus. - Beschreibung eingeben.
- Klicken Sie auf Ingress-Regeln hinzufügen.
-
Prüfen Sie die IPv4-Sicherheitsregeln, um eingehenden HTTP- und HTTPS-Traffic zuzulassen.
-
Um neue Sicherheitsregeln für den Netzwerktraffic IPv6 hinzuzufügen, erstellen Sie neue Ingress-Regeln. Klicken Sie erneut auf Ingress-Regeln hinzufügen.
- Quelltyp: Wählen Sie CIDR aus.
- Quell-CIDR: Geben Sie "
::/0
" ein. - IP-Protokoll: Wählen Sie TCP aus.
- Quellportbereich: Behalten Sie den Standardwert bei (Alle).
- Zielportbereich: Wählen Sie
80,443
(HTTP und HTTPS) aus. - Beschreibung eingeben.
- Klicken Sie auf Ingress-Regeln hinzufügen.
-
Prüfen Sie die IPv6-Sicherheitsregeln, um eingehenden HTTP- und HTTPS-Traffic zuzulassen.
Die Sicherheitsregeln sind vorhanden, und der Traffic IPv4 und IPv6 ist in den VCN-Subnetzen zulässig. Wir installieren die Webserveranwendung auf der Instanz.
Aufgabe 6: Webserver auf Instanz installieren
Prüfen Sie vor der Installation der Webserveranwendung schnell, ob die Firewallports korrekt konfiguriert sind. Verwenden Sie die folgende Website IPV6 Online Port Scanner. Diese Website verfügt über einen Port-Scanner IPv6, Sie können aber auch IPv4-Adressen eingeben.
-
Geben Sie die Adresse IPv4 mit den Details ein, um den Scan am TCP-Port
80
auszuführen. Beachten Sie, dass dieser Status GESCHLOSSEN ist, da die Webserveranwendung noch nicht installiert ist und der Status nicht GESCHLOSSEN ist, da die Regeln der Standardsicherheitsliste hinzugefügt wurden. -
Geben Sie für die Adresse IPv6 die folgenden Details ein. Die Ausgabe ist aus denselben Gründen mit IPv4 identisch.
-
Auf der Terminalkonsole der Webserverinstanz oder SSH. Geben Sie die folgenden Befehle ein, um den DNF-Softwarepackagemanager zu aktualisieren und DNF-Utils zu installieren.
[opc@ih-webserver-01 ~]$ sudo dnf update -y [opc@ih-webserver-01 ~]$ sudo dnf install dnf-utils -y
-
Aktualisieren Sie die Datei
NGINX.repo
, um die Details zum Herunterladen und Installieren der NGINX-Webserveranwendung anzugeben.[opc@ih-webserver-01 ~]$ sudo nano /etc/yum.repos.d/nginx.repo
Kopieren Sie den folgenden Inhalt, und fügen Sie ihn in die Datei
nginx.repo
ein.[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true
Prüfen Sie den Inhalt der Datei
nginx.repo
.[opc@ih-webserver-01 ~]$ sudo more /etc/yum.repos.d/nginx.repo [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [opc@ih-webserver-01 ~]$
-
Standardmäßig wird das Repository für stabile Nginx-Packages verwendet. Um Mainline-Nginx-Packages zu verwenden, führen Sie den folgenden Befehl aus.
[opc@ih-webserver-01 ~]$ sudo yum-config-manager --enable nginx-mainline
-
Verwenden Sie den folgenden Befehl, um die NGINX-Webserveranwendung zu installieren.
[opc@ih-webserver-01 ~]$ sudo dnf install nginx
-
Um die NGINX-Webserveranwendung zu starten, führen Sie den folgenden Befehl aus.
[opc@ih-webserver-01 ~]$ sudo systemctl start nginx
-
Wenn die Installation abgeschlossen ist, aktivieren Sie NGINX automatisch beim Booten des Systems und starten den Webserver.
[opc@ih-webserver-01 ~]$ sudo systemctl enable nginx Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
-
Mit dem folgenden Befehl können Sie den Ausführungsstatus der NGINX-Webserveranwendung prüfen.
[opc@ih-webserver-01 ~]$ systemctl status nginx ● nginx.service - nginx - high performance web server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2024-02-06 08:58:43 GMT; 2min 47s ago Docs: http://nginx.org/en/docs/ Main PID: 43323 (nginx) Tasks: 3 (limit: 99901) Memory: 2.8M CGroup: /system.slice/nginx.service ├─43323 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf ├─43324 nginx: worker process └─43325 nginx: worker process Feb 06 08:58:43 ih-webserver-01 systemd[1]: Starting nginx - high performance web server... Feb 06 08:58:43 ih-webserver-01 systemd[1]: Started nginx - high performance web server. [opc@ih-webserver-01 ~]$
-
Mit dem folgenden Befehl können Sie die Version der NGINX-Webserveranwendung prüfen.
[opc@ih-webserver-01 ~]$ nginx -v nginx version: nginx/1.25.3 [opc@ih-webserver-01 ~]$
-
firewalld
ist eine zonenbasierte persönliche Firewall, die im Oracle Linux-Deployment auf OCI installiert wird. In den VCN-Subnetzen ist bereits eine Firewall über die Standardsicherheitsliste konfiguriert. Der internefirewalld
-Service wird deaktiviert. Führen Sie den folgenden Befehl aus.[opc@ih-webserver-01 nginx]$ sudo systemctl stop firewalld [opc@ih-webserver-01 nginx]$ sudo systemctl disable firewalld Removed /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [opc@ih-webserver-01 nginx]$ sudo setenforce 0 [opc@ih-webserver-01 nginx]$
-
Um zu prüfen, ob der Webserver-Service ausgeführt wird, prüfen Sie, ob der Listener ausgeführt wird. Führen Sie den folgenden Befehl aus. Beachten Sie, dass die drei NGINX-Services alle auf IPv4 und Port
80
horchen. Was hier auffällt, ist, dass der Listener IPv6 fehlt.[opc@ih-webserver-01 ~]$ sudo lsof -i -P -n | grep LISTEN systemd 1 root 71u IPv4 19039 0t0 TCP *:111 (LISTEN) systemd 1 root 82u IPv6 19041 0t0 TCP *:111 (LISTEN) rpcbind 1421 rpc 4u IPv4 19039 0t0 TCP *:111 (LISTEN) rpcbind 1421 rpc 6u IPv6 19041 0t0 TCP *:111 (LISTEN) osms-agen 2429 root 7u IPv6 41713 0t0 TCP 127.0.0.1:32768 (LISTEN) osms-agen 2429 root 10u IPv4 41722 0t0 TCP 127.0.0.1:9003 (LISTEN) pmcd 2469 pcp 0u IPv4 35603 0t0 TCP 127.0.0.1:44321 (LISTEN) pmcd 2469 pcp 3u IPv6 35604 0t0 TCP [::1]:44321 (LISTEN) pmlogger 3188 pcp 7u IPv4 42005 0t0 TCP 127.0.0.1:4330 (LISTEN) pmlogger 3188 pcp 8u IPv6 42006 0t0 TCP [::1]:4330 (LISTEN) sshd 6745 root 3u IPv4 54797 0t0 TCP *:22 (LISTEN) sshd 6745 root 4u IPv6 54799 0t0 TCP *:22 (LISTEN) nginx 43323 root 6u IPv4 98324 0t0 TCP *:80 (LISTEN) nginx 43324 nginx 6u IPv4 98324 0t0 TCP *:80 (LISTEN) nginx 43325 nginx 6u IPv4 98324 0t0 TCP *:80 (LISTEN)
-
Eine weitere schnelle Prüfung, wir machen eine Kurve zum lokalen Webserver, um zu sehen, ob der standardmäßige NGINX-Webserver über IPv4 erreichbar ist.
[opc@ih-webserver-01 ~]$ curl http://localhost <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> html { color-scheme: light dark; } body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html> [opc@ih-webserver-01 ~]$
-
Wir führen denselben Test aus dem Internet über dieselbe IPv6 Online Port Scanner-Website aus, und jetzt ist der Port für IPv4 OPEN.
-
Der letzte Test besteht darin, die Website oder den Webserver zu testen, die über einen Remote-Browser mit IPv4 erreichbar ist. Die verwendete URL lautet
http://144.xxx.xxx.xxx
. -
Obwohl wir die NGINX-Webserveranwendung installiert haben, erhalten wir immer noch das folgende Ergebnis für die IPv6-Adresse.
Um dies zu beheben, müssen wir sicherstellen, dass der Webserver auch so konfiguriert ist, dass er auf IPv6-Adressen horcht. Bearbeiten Sie dazu die nginx-Datei
default.conf
.[opc@ih-webserver-01 conf.d]$ sudo nano /etc/nginx/conf.d/default.conf
Der Abschnitt server der Konfigurationsdatei sieht folgendermaßen aus:
server { listen 80; server_name localhost; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; }
Fügen Sie die folgende Zeile zum Serverabschnitt hinzu.
**listen [::]:80;**
Der Abschnitt server sieht in etwa wie folgt aus.
server { listen 80; **listen [::]:80;** server_name localhost; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; }
Nach dem Update sieht die Datei
default.conf
wie folgt aus.[opc@ih-webserver-01 conf.d]$ sudo more /etc/nginx/conf.d/default.conf server { listen 80; **listen [::]:80;** server_name localhost; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } [opc@ih-webserver-01 conf.d]$
-
Verwenden Sie den folgenden Befehl, um den NGINX-Webserver neu zu starten.
[opc@ih-webserver-01 ~]$ sudo systemctl restart nginx
-
Mit dem folgenden Befehl können Sie die Listener erneut prüfen. Beachten Sie, dass NGINX jetzt auch auf IPv6 neben IPv4 aufgeführt ist.
[opc@ih-webserver-01 conf.d]$ sudo lsof -i -P -n | grep LISTEN systemd 1 root 46u IPv4 19039 0t0 TCP *:111 (LISTEN) systemd 1 root 48u IPv6 19041 0t0 TCP *:111 (LISTEN) rpcbind 1421 rpc 4u IPv4 19039 0t0 TCP *:111 (LISTEN) rpcbind 1421 rpc 6u IPv6 19041 0t0 TCP *:111 (LISTEN) osms-agen 2429 root 7u IPv6 41713 0t0 TCP 127.0.0.1:32768 (LISTEN) osms-agen 2429 root 10u IPv4 41722 0t0 TCP 127.0.0.1:9003 (LISTEN) pmcd 2469 pcp 0u IPv4 35603 0t0 TCP 127.0.0.1:44321 (LISTEN) pmcd 2469 pcp 3u IPv6 35604 0t0 TCP [::1]:44321 (LISTEN) pmlogger 3188 pcp 7u IPv4 42005 0t0 TCP 127.0.0.1:4330 (LISTEN) pmlogger 3188 pcp 8u IPv6 42006 0t0 TCP [::1]:4330 (LISTEN) sshd 6745 root 3u IPv4 54797 0t0 TCP *:22 (LISTEN) sshd 6745 root 4u IPv6 54799 0t0 TCP *:22 (LISTEN) nginx 54944 root 6u IPv4 219674 0t0 TCP *:80 (LISTEN) nginx 54944 root 7u IPv6 219675 0t0 TCP *:80 (LISTEN) nginx 54945 nginx 6u IPv4 219674 0t0 TCP *:80 (LISTEN) nginx 54945 nginx 7u IPv6 219675 0t0 TCP *:80 (LISTEN) nginx 54946 nginx 6u IPv4 219674 0t0 TCP *:80 (LISTEN) nginx 54946 nginx 7u IPv6 219675 0t0 TCP *:80 (LISTEN) [opc@ih-webserver-01 conf.d]$
Wir führen denselben Test über das Internet auf derselben IPv6 Online Port Scanner-Website aus, und jetzt ist der Port OPEN für IPv6.
Eine weitere schnelle Prüfung, wir machen eine Kurve zum lokalen Webserver, um zu sehen, ob der standardmäßige NGINX-Webserver über IPv6 erreichbar ist.
[opc@ih-webserver-01 conf.d]$ curl -6 "http://[::1]:80" <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> html { color-scheme: light dark; } body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html> [opc@ih-webserver-01 conf.d]$
-
Der letzte Test besteht darin zu testen, ob die Website oder der Webserver über einen Remote-Browser mit IPv6 erreichbar ist. Die verwendete URL lautet
http://[2603:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]
.Hinweis: Wenn Sie eine IPv6-Adresse im Browser verwenden, müssen Sie sie in eckige Klammern setzen.
Aufgabe 7: DNS-Datensätze konfigurieren
Hinweis: Die Domains, die wir in diesem Tutorial verwendet haben, wurden nur zu Testzwecken erstellt und konfiguriert.
Jetzt ist die Website oder der Webserver über das Internet erreichbar. Wir gehen einen Schritt weiter, indem wir einen FQDN konfigurieren, der sich leichter merken lässt als eine IPv4-Adresse oder eine IPv6-Adresse. In diesem Tutorial wird die folgende Subdomain als Beispiel verwendet: oci.iwanhoogendoorn.nl für den neuen Webserver.
-
Wir melden uns bei der Domainadministration des Registrars für die Domain
iwanhoogendoorn.nl
an.- Beachten Sie, dass die richtige zu konfigurierende Domain ausgewählt wurde.
- Wählen Sie DNS-Verwaltung aus.
-
Alle DNS-Datensätze für die Domain iwanhoogendoorn.nl werden wie in der folgenden Abbildung aufgeführt.
- Fügen Sie die Subdomain
oci
zur Domain für IPv4 hinzu, und wählen Sie die öffentliche IPv4-Adresse der Instanz aus. - Klicken Sie auf Hinzufügen.
- Fügen Sie nun die Subdomain
oci
zur Domain für IPv6 hinzu, und wählen Sie die Adresse IPv6 der Instanz aus. - Klicken Sie auf Hinzufügen.
- Prüfen Sie auf der DNS-Überblicksseite den DNS-Datensatz oci.iwanhoogendoorn.nl für IPv4.
- Prüfen Sie auf der DNS-Überblicksseite den DNS-Datensatz oci.iwanhoogendoorn.nl für IPv6.
- Fügen Sie die Subdomain
-
Verwenden Sie den Befehl
nslookup
, um zu testen, ob oci.iwanhoogendoorn.nl in die richtige IPv4-Adresse aufgelöst wird.iwanhoogendoorn@Iwans-MacBook-Pro ~ % nslookup oci.iwanhoogendoorn.nl
-
Verwenden Sie den Befehl
nslookup
, um zu testen, ob oci.iwanhoogendoorn.nl in die richtige IPv6-Adresse aufgelöst wird.iwanhoogendoorn@Iwans-MacBook-Pro ~ % nslookup -q=AAAA oci.iwanhoogendoorn.nl
Aufgabe 8: Benutzerdefinierte Website mit NGINX und PHP erstellen
Wir erstellen eine benutzerdefinierte PHP-Website oder ein Skript, das etwas mehr Informationen über das Netzwerk und die IP-Adressen mit NGINX bereitstellt.
-
Installieren Sie den PHP FastCGI Process Manager (PHP-FPM). PHP-FPM ist ein alternativer FastCGI Daemon für PHP, der es einer Website ermöglicht, hohe Lasten zu bewältigen.
sudo dnf install php-fpm
-
Überprüfen Sie die installierte PHP-Version.
[opc@ih-webserver-01 /]$ php -v PHP 7.2.24 (cli) (built: Oct 22 2019 08:28:36) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies [opc@ih-webserver-01 /]$
-
Damit NGINX mit PHP funktioniert und umgekehrt muss eine Konfiguration durchgeführt werden. Eine Konfigurationsdatei auf der PHP- und der NGNIX-Seite.
Abhängig von Ihrer Linux-Distribution, NGINX und PHP-FPM-Versionen können die Konfigurationsdateinamen und Pfadnamen unterschiedlich sein, was die Integration in NGINX und PHP wesentlich erschwert.
Wichtige Dateien und Verzeichnisse für PHP-FPM und NGINX.
Beschreibung Oracle Linux 8 Sonstige Anlagen/Verteilungen NGINX-Web-Root-Pfad /usr/share/nginx/html /usr/share/nginx/www PHP FPM-Konfigurationsdatei /etc/php-fpm.d/www.conf php-fpm.conf NGINX-Konfigurationsdatei /etc/nginx/conf.d/default.conf nginx.conf PHP-FPM-Socket-Datei /run/php-fpm/www.sock php: fpm.sock, phpx.x: fpm.sock (x.x: Version) FastCGI-Einstellungsdatei /etc/nginx/fastcgi_params fastcgi.conf PHP-Konfigurationsdatei /etc/php.ini
So integrieren Sie NGINX in PHP:
-
Bearbeiten Sie die PHP-FPM-Konfigurationsdatei, um NGINX zu integrieren.
Bearbeiten Sie die Datei
/etc/php-fpm.d/www.conf
.sudo nano /etc/php-fpm.d/www.conf
-
Inhalt der Datei
/etc/php-fpm.d/www.conf
vor Änderungen.; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. ; RPM: apache user chosen to provide access to the same directories as httpd **user =** apache ; RPM: Keep a group allowed to write in log dir. **group =** apache
-
Inhalt der Datei
/etc/php-fpm.d/www.conf
nach Änderungen.; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. ; RPM: apache user chosen to provide access to the same directories as httpd **user = nginx** ; RPM: Keep a group allowed to write in log dir. **group = nginx**
-
-
Bearbeiten Sie die NGINX-Konfigurationsdatei, um PHP-FPM zu integrieren.
-
Bearbeiten Sie die Datei
/etc/nginx/conf.d/default.conf
.[opc@ih-webserver-01 html]$ sudo nano /etc/nginx/conf.d/default.conf
-
Fügen Sie die folgende Konfiguration hinzu.
location / { **# where is the NGINX root www folder?** root /usr/share/nginx/html; # what are the default index files to look for in the directory? index **index.php** index.html index.htm; } # tell NGINX what to do when it sees PHP-FPM giving a 404 HTTP status in the response **location = /404.php { # where is the NGINX root www folder? root /usr/share/nginx/html; # not return error responses with relevant status codes fastcgi_intercept_errors off; # where is PHP-FPM listening? the socket fastcgi_pass unix:/var/run/php-fpm/www.sock; # everytime we're in this location, tell PHP-FPM the complete script filename to be executed fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # and don't forget to tell PHP-FPM stuff like SERVER_NAME: include fastcgi_params; }** # tell NGINX what to do when it sees PHP-FPM a .php file **location ~ \.php$ { # where is the NGINX root www folder? root /usr/share/nginx/html; # define custom error pages error_page 404 /404.php; # return error responses with relevant status codes fastcgi_intercept_errors on; # where is PHP-FPM listening? the socket fastcgi_pass unix:/var/run/php-fpm/www.sock; # everytime we're in this location, tell PHP-FPM the complete script filename to be executed fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # and don't forget to tell PHP-FPM stuff like SERVER_NAME: include fastcgi_params; }**
-
-
Bearbeiten Sie die
php.ini
-Konfigurationsdatei.-
Bearbeiten Sie die Datei
/etc/php.ini
.[opc@ih-webserver-01 /]$ sudo nano /etc/php.ini
-
Stellen Sie sicher, dass die folgende Zeile vorhanden, geändert oder nicht kommentiert ist.
cgi.fix_pathinfo = 0;
-
-
Starten Sie die PHP-FPM- und NGINX-Services neu.
-
Starten Sie den PHP-FPM-Service neu.
sudo systemctl start php-fpm
-
Starten Sie den NGINX-Service neu.
sudo systemctl restart nginx
-
-
Erstellen Sie eine benutzerdefinierte Seite für die richtige Webseite zum Verarbeiten und Testen.
-
Erstellen Sie eine benutzerdefinierte
404.php
-Seite. Dies ist erforderlich, um die Umleitung auf eine benutzerdefinierte 404-Seite ordnungsgemäß zu verarbeiten, wenn die Seite nicht vorhanden ist, und um darauf zuzugreifen.[opc@ih-webserver-01 html]$ sudo nano 404.php
Code für die benutzerdefinierte Seite
404.php
.<?php header("HTTP/1.0 404 Not Found"); ?> <html> <head> <title>404 Error - Page Not Found</title> </head> <body>404 Error - Page Not Found!</body> </html>
-
Erstellen Sie eine benutzerdefinierte
info.php
-Seite.[opc@ih-webserver-01 html]$ sudo nano info.php
Code für Seite
info.php
.<?php phpinfo();
-
Testen Sie die Website
info.php
, die den Nachweis liefert, dass PHP mit NGNIX arbeitet.Wenn die Website korrekt installiert und konfiguriert ist, wird die folgende Webseite angezeigt. Diese Seite enthält Informationen zu Ihren lokalen und Remote-IPv4- oder IPv6-Adressen, je nachdem, mit welcher IP-Version Sie eine Verbindung herstellen. Diese Seite informiert auch über das von Ihnen verwendete Protokoll, HTTP oder HTTPS.
-
Aufgabe 9: Webserver aus dem Internet testen
Hinweis: Die Domains, die wir in diesem Tutorial verwendet haben, wurden nur zu Testzwecken erstellt und konfiguriert.
Auch wenn wir die Erreichbarkeit der Website oder des Webservers bereits mit mehreren Methoden getestet haben. Wir möchten die folgende Website verwenden, um den letzten Test durchzuführen, der die Erreichbarkeit und die DNS-Datensatzkonfiguration auf einen Schlag testen wird. Ist Ihre Website IPv6 bereit?
- Verwenden Sie den FQDN oci.iwanhoogendoorn.nl zum Testen.
- Prüfen Sie, ob die DNS-Datensätze IPv4 korrekt konfiguriert sind.
- Prüfen Sie, ob die DNS-Datensätze IPv6 korrekt konfiguriert sind.
- Überprüfen Sie, ob die Website unter IPv4 erreichbar ist.
- Überprüfen Sie, ob die Website unter IPv6 erreichbar ist.
Danksagungen
- Autor - Iwan Hoogendoorn (OCI Network Specialist)
Weitere Lernressourcen
Lernen Sie andere Übungen auf docs.oracle.com/learn kennen, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube Channel zu. Außerdem können Sie education.oracle.com/learning-explorer besuchen, um Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Use Oracle Cloud Infrastructure to Publish a Webserver Accessible from the Internet with IPv6
F93539-01
February 2024
Copyright © 2024, Oracle and/or its affiliates.