Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So binden Sie den sekundären Domänennamen des Nginx-Reverse-Proxys

So binden Sie den sekundären Domänennamen des Nginx-Reverse-Proxys

PHPz
PHPznach vorne
2023-05-20 10:55:242135Durchsuche

1. Anwendungsszenarien

Wir stoßen häufig auf Situationen, in denen mehrere Websites auf demselben Server eingerichtet sind. Eine gängige Praxis besteht darin, unterschiedliche Ports für verschiedene Sites zu konfigurieren, damit auf sie in Form von ip:port zugegriffen werden kann.

Aber schließlich ist die Verwendung von IP für den Zugriff umständlich, nicht anschaulich und nicht leicht zu merken. Dann können wir unterschiedliche Domänennamen an jede Site binden. (Hier sprechen wir nur über die Situation im öffentlichen Netzwerk.) Selbst wenn wir nur einen Domänennamen haben, können wir mehrere Domänennamen der zweiten Ebene einrichten, was mit Nginx leicht zu erreichen ist.

2. Grundvoraussetzungen

Normalerweise veröffentlichen Online-Tutorials direkt einen Code für die Konfigurationsdatei und teilen uns mit, dass dies in Ordnung ist. Ich habe jedoch festgestellt, dass viele Anfänger nicht so erfolgreich sein können wie Blogger, nachdem sie sich die Konfiguration des Tutorials angesehen haben. Lassen Sie uns als Nächstes über die Grundprinzipien sprechen.

 Zuallererst müssen Sie einen Domainnamen haben, den Sie verwalten können. Ich habe zum Beispiel den Domainnamen postmsg.cn, der mehrere Subdomainnamen für Tausende von Generationen generieren kann...

 Zweitens Es muss sich um einen zugänglichen öffentlichen Netzwerkserver handeln. Auf diesem Server können Sie Ihre eigene Website erstellen, einen, zwei, drei oder vier, mit verschiedenen entsprechenden Ports.

 Dann gibt es noch die Bindung des Domainnamens und der Site, eine Karotte und eine Grube, natürlich können Sie auch mehrere Karotten und eine Grube haben...

 3. Allgemeine Konfiguration

 Es gibt zwei Orte, die konfiguriert werden müssen, sind auch etwas, das einige Anfänger gerne übersehen.

  (1) Domänennamenkonfiguration

  Es ist üblich, dass jeder daran denkt, die Auflösung des Domänennamens auf unseren öffentlichen Netzwerkserver zu verweisen. Beim Parsen können Sie nur IP hinzufügen, aber keine Portnummer, d. h. Sie können nur den Standardport 80 verwenden. (Die Weiterleitung von Domänennamen wird nicht besprochen)

  Wenn Sie die Bindung von Subdomänennamen implementieren möchten, müssen Sie diese während der Domänennamenauflösung ordnungsgemäß konfigurieren. Andernfalls wird es nicht funktionieren, sich nur auf Nginx zu verlassen.

 Wenn ich beispielsweise den Subdomainnamen p.postmsg.cn an Port 8001 des Servers binden möchte, muss ich zunächst sicherstellen, dass die Zugriffsanforderung auf p.postmsg.cn den Server erreichen kann, und dann kann Nginx sie verarbeiten .

 Fügen Sie zu diesem Zeitpunkt entweder einen Host-Eintrag von p im Domänennamen mit einer Datensatzauflösung hinzu oder konfigurieren Sie den Platzhalter * im Host-Eintrag (jeder Zugriff auf *.postmsg.cn wird auf den entsprechenden Server aufgelöst, verwenden Sie ihn mit Vorsicht). , nur @ und www setzen ist definitiv nicht möglich.

So binden Sie den sekundären Domänennamen des Nginx-Reverse-Proxys

                                  int in Nginx

  Wenn Sie die Nginx-Konfiguration ändern, können Sie diese direkt in der Standardkonfigurationsdatei ändern (z. B. /etc/nginx/nginx.conf, wie im folgenden Codeausschnitt gezeigt) oder Sie können eine neue unabhängige Konfigurationsdatei in a erstellen Erstellen Sie ein bestimmtes Verzeichnis und fügen Sie dann Konfigurationsdateien in dieses Verzeichnis ein (wie in Zeile 17 gezeigt).

http {
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"';
  access_log /var/log/nginx/access.log main;
  sendfile      on;
  tcp_nopush     on;
  tcp_nodelay     on;
  keepalive_timeout  65;
  types_hash_max_size 2048;
  include       /etc/nginx/mime.types;
  default_type    application/octet-stream;
  include /etc/nginx/conf.d/*.conf;
}

 Dies ist das Format für Nginx zum Lesen von Konfigurationsdateien. Unsere Konfiguration wird normalerweise in den Block http {} und den Serverblock geschrieben und im Serverblock konfiguriert. Wie gerade erwähnt, kann der Serverblock in eine separate Datei geschrieben und in nginx.conf eingebunden werden. Gleichzeitig wird verschachteltes Include unterstützt.

  Als nächstes schauen wir uns an, wie der Serverblock geschrieben ist:

server {
  listen 80;
  server_name p.postmsg.cn;
  location / {
  proxy_pass http://127.0.0.1:8008;
    proxy_redirect off;
    proxy_set_header host $host;
    proxy_set_header x-real-ip $remote_addr;
    proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
  }
  #access_log logs/p_access.log;
}

  Der Servername entspricht hier dem konfigurierten Domänennamen und Proxy_Pass entspricht der tatsächlichen Adresse des Proxys.

  (3) Hinweis 1

  Stellen Sie sicher, dass Sie Port 80 Nginx überlassen, das für den Proxy verantwortlich ist. Wir können Apache httpd, nginx und tomcat gleichzeitig auf einem Server verwenden, aber die Domänennamenauflösung kann nur den Standardport 80 verwenden, und die für die Agentur verantwortlichen Kameraden müssen die Anfragen aus erster Hand erhalten.

  (4) Hinweis 2

  Es ist sofort wirksam. Einige Freunde haben das Gefühl, alles richtig konfiguriert und den Dienst neu gestartet zu haben, können aber einfach nicht die gewünschten Ergebnisse sehen. Hier gibt es drei mögliche Faktoren.

  

Wirksamkeitszeit der Domainnamenauflösung
    . Die minimale Gültigkeitsdauer des Domainnamens von Alibaba Cloud beträgt 10 Minuten und kann manchmal länger als dieser Wert sein.
  1.   

    Lokaler DNS-Cache.
  2. Sie können den Befehl ipconfig /flushdns in cmd verwenden, um den lokalen DNS-Cache zu aktualisieren.
  3.   

    Browser-Cache.
  4. Dies ist möglicherweise am schwierigsten zu finden, insbesondere in Google Chrome. Klicken Sie nach F12 mit der rechten Maustaste auf die Schaltfläche „Aktualisieren“ neben der Adressleiste in der oberen linken Ecke und klicken Sie auf „Cache löschen und neu laden“.
  5.   

    Der Dienst wurde nicht neu gestartet.
  6. service nginx restart kann manchmal nicht sinnvoll sein, ohne zuerst anzuhalten und dann zu starten.

Das obige ist der detaillierte Inhalt vonSo binden Sie den sekundären Domänennamen des Nginx-Reverse-Proxys. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen