Heim Betrieb und Instandhaltung Nginx Grundlegende Konfigurationsmethode für den domänenübergreifenden Nginx-Reverse-Proxy

Grundlegende Konfigurationsmethode für den domänenübergreifenden Nginx-Reverse-Proxy

May 13, 2023 pm 09:49 PM
nginx

Nginx-Schnittstellendienst-Reverse-Proxy-Grundkonfiguration

server {
  listen 8443; # 监听的端口号
  server_name a.test.com; # 服务器名称
  client_max_body_size 100m;  # 定义读取客户端请求头的超时时间
  ssl on;
  ssl_certificate test.pem;
  ssl_certificate_key test.key;
  ssl_session_timeout 5m;
  ssl_protocols sslv3 tlsv1.2;
  ssl_ciphers ecdhe-rsa-aes256-sha384:aes256-sha256:rc4:high:!md5:!anull:!enull:!null:!dh:!edh:!aesgcm;
  ssl_prefer_server_ciphers on;
  location / {
    root /test-static-app; # 静态资源目录
    index index.html index.htm;
    try_files $uri $uri/ /index.html; # 动态解析目录,配合vue的history模式
  }
}
Nach dem Login kopieren

Die Grundkonfiguration realisiert die Grundfunktionen der Seite und des statischen Servers und kann die realisieren Verwendung der Vue-Routenauflösung im Verlaufsmodus. Um eine einheitliche Weiterleitung an den Schnittstellenserver zu erreichen, müssen wir außerdem das Präfix des Schnittstellennamens mit dem Back-End-Entwickler angeben. Zu diesem Zeitpunkt können wir beispielsweise die relativen Pfade aller Schnittstellen hinzufügen Die folgende Konfiguration (entspricht dem vorherigen Speicherort):

...
location /api {
  proxy_pass https://b.test.com; # 设置代理服务器的协议和地址
  proxy_cookie_domain b.test.com a.test.com; # 修改cookie,针对request和response互相写入cookie
}    
...
Nach dem Login kopieren

Es basiert hauptsächlich auf Proxy_Pass, um die /api/x-Schnittstelle unter a.test.com an b.test.com weiterzuleiten wie folgt

#🎜🎜 #

Grundlegende Konfigurationsmethode für den domänenübergreifenden Nginx-Reverse-Proxy

Die Interaktion von Cookies besteht hauptsächlich aus Proxy_Cookie_Domain und dem folgenden Absatz

proxy_cookie_domain b.test.com a.test.com;
Nach dem Login kopieren

Dies wird realisiert, ein.Test .com- und b.test.com-Domänennamen. Übergeben und Zurückschreiben von Cookies.

Wenn Sie Node zur Simulation verwenden, sieht es ungefähr wie folgt aus

module.exports = (router) => {
 router.get('/api/index/getcmsinfo', async function (ctx, next) {
  // 接口转发
  let result = await superagent.post('https://b.test.com/api/card/home').set(browsermsg)
  // 获取返回的set-cookie,并设置header
  let setcookie = result.headers['set-cookie']
  if (setcookie) {
    ctx.response.header['set-cookie'] = setcookie
  }
  // 返回
  ctx.response.body={
    success: true,
    result: result.body 
  }
 })
}
Nach dem Login kopieren

Zusammenfassend lässt sich sagen, dass der Kern des Nginx-Reverse-Proxy tatsächlich die Weiterleitung von Schnittstellendiensten und die Verarbeitung ist Denken Sie sorgfältig darüber nach. Es ist leicht zu verstehen.

Häufige Missverständnisse

1. Nutzloser Aca-Header?


Viele domänenübergreifende Nginx-Einstellungen im Internet haben Inhalte im Zusammenhang mit domänenübergreifenden Header-Einstellungen hinzugefügt, z. B.

add_header 'access-control-allow-origin' '*';
add_header 'access-control-allow-credentials' "true"; 
add_header access-control-allow-headers x-requested-with;
Nach dem Login kopieren

Denken Sie über das obige Prinzip nach, liebe Leser Halten Sie das noch für nützlich? Der Header der aca-Reihe (access-control-allow-) ist für die domänenübergreifende Aushandlung in CORS konfiguriert. Es ist einfach unnötig, hier die Hose auszuziehen und zu furzen.


2 Enthält der Proxy_Pass-Domänenname „Schrägstrich/“?


Ähnlich habe ich im Internet gesehen, dass einige Internetnutzer beim Konfigurieren von Proxy_Pass am Ende einen Schrägstrich hinzugefügt haben, wie unten gezeigt, und dann gesagt haben, dass ein Fehler gemeldet wurde und die Schnittstelle nicht konnte gefunden werden~ Das ist richtig~

...
location /api {
  #proxy_pass https://b.test.com;
  proxy_pass https://b.test.com/;
}    
...
Nach dem Login kopieren
Nachdem wir das gesehen haben, denken wir darüber nach. Die Funktion von Proxy_Pass besteht darin, den Schrägstrich zu erfassen, sodass alle /api-Anfragen an das Stammverzeichnis weitergeleitet werden. Das heißt, /api wird durch / ersetzt. Zu diesem Zeitpunkt ändert sich der Schnittstellenpfad und es gibt eine Ebene weniger von /api. Wie wäre es, ohne einen Schrägstrich hinzuzufügen? Dies bedeutet, dass bei der Weiterleitung an den Domänennamen b.test.com der /api-Pfad nicht verloren geht.


Wenn die Backend-Schnittstelle in diesem Fall ein vorgeschriebenes Präfix wie /api hat, müssen Sie den Schrägstrich hier nicht konfigurieren. In einem anderen Fall ist der Scheiß der Back-End-Schnittstelle derselbe, ohne ein einheitliches Präfix. Hier müssen wir unterscheiden, dann allen Front-End-Schnittstellen ein einheitliches Präfix hinzufügen, z. B. /api, und es dann durch Hinzufügen eines Schrägstrichs ersetzen ~#🎜 🎜#

Das obige ist der detaillierte Inhalt vonGrundlegende Konfigurationsmethode für den domänenübergreifenden Nginx-Reverse-Proxy. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So überprüfen Sie, ob Nginx gestartet wird So überprüfen Sie, ob Nginx gestartet wird Apr 14, 2025 pm 01:03 PM

So bestätigen Sie, ob Nginx gestartet wird: 1. Verwenden Sie die Befehlszeile: SystemCTL Status Nginx (Linux/Unix), Netstat -ano | FindStr 80 (Windows); 2. Überprüfen Sie, ob Port 80 geöffnet ist; 3. Überprüfen Sie die Nginx -Startmeldung im Systemprotokoll. 4. Verwenden Sie Tools von Drittanbietern wie Nagios, Zabbix und Icinga.

So konfigurieren Sie den Namen des Cloud -Server -Domänennamens in Nginx So konfigurieren Sie den Namen des Cloud -Server -Domänennamens in Nginx Apr 14, 2025 pm 12:18 PM

So konfigurieren Sie einen Nginx -Domänennamen auf einem Cloud -Server: Erstellen Sie einen Datensatz, der auf die öffentliche IP -Adresse des Cloud -Servers zeigt. Fügen Sie virtuelle Hostblöcke in die NGINX -Konfigurationsdatei hinzu, wobei der Hörport, Domänenname und das Root -Verzeichnis der Website angegeben werden. Starten Sie Nginx neu, um die Änderungen anzuwenden. Greifen Sie auf die Konfiguration des Domänennamens zu. Weitere Hinweise: Installieren Sie das SSL -Zertifikat, um HTTPS zu aktivieren, sicherzustellen, dass die Firewall den Verkehr von Port 80 ermöglicht, und warten Sie, bis die DNS -Auflösung wirksam wird.

So überprüfen Sie den Namen des Docker -Containers So überprüfen Sie den Namen des Docker -Containers Apr 15, 2025 pm 12:21 PM

Sie können den Namen des Docker -Containers abfragen, indem Sie den Schritten folgen: Alle Container auflisten (Docker PS). Filtern Sie die Containerliste (unter Verwendung des GREP -Befehls). Ruft den Containernamen ab (befindet sich in der Spalte "Namen").

So überprüfen Sie die Nginx -Version So überprüfen Sie die Nginx -Version Apr 14, 2025 am 11:57 AM

Die Methoden, die die Nginx -Version abfragen können, sind: Verwenden Sie den Befehl nginx -v; Zeigen Sie die Versionsrichtlinie in der Datei nginx.conf an. Öffnen Sie die Nginx -Fehlerseite und sehen Sie sich den Seitentitel an.

So konfigurieren Sie Nginx in Windows So konfigurieren Sie Nginx in Windows Apr 14, 2025 pm 12:57 PM

Wie konfiguriere ich Nginx in Windows? Installieren Sie NGINX und erstellen Sie eine virtuelle Hostkonfiguration. Ändern Sie die Hauptkonfigurationsdatei und geben Sie die Konfiguration der virtuellen Host ein. Starten oder laden Nginx neu. Testen Sie die Konfiguration und sehen Sie sich die Website an. Aktivieren Sie selektiv SSL und konfigurieren Sie SSL -Zertifikate. Stellen Sie die Firewall selektiv fest, damit Port 80 und 443 Verkehr.

So starten Sie den Nginx -Server So starten Sie den Nginx -Server Apr 14, 2025 pm 12:27 PM

Das Starten eines Nginx-Servers erfordert unterschiedliche Schritte gemäß verschiedenen Betriebssystemen: Linux/UNIX-System: Installieren Sie das NGINX-Paket (z. B. mit APT-Get oder Yum). Verwenden Sie SystemCTL, um einen Nginx -Dienst zu starten (z. B. sudo systemctl start nginx). Windows -System: Laden Sie Windows -Binärdateien herunter und installieren Sie sie. Starten Sie Nginx mit der ausführbaren Datei nginx.exe (z. B. nginx.exe -c conf \ nginx.conf). Unabhängig davon, welches Betriebssystem Sie verwenden, können Sie auf die Server -IP zugreifen

So erstellen Sie Container für Docker So erstellen Sie Container für Docker Apr 15, 2025 pm 12:18 PM

Erstellen Sie einen Container in Docker: 1. Ziehen Sie das Bild: Docker Pull [Spiegelname] 2. Erstellen Sie einen Container: Docker Ausführen [Optionen] [Spiegelname] [Befehl] 3. Starten Sie den Container: Docker Start [Containername]

So starten Sie einen Container von Docker So starten Sie einen Container von Docker Apr 15, 2025 pm 12:27 PM

Startschritte des Docker -Containers: Ziehen Sie das Containerbild: Führen Sie "Docker Pull [Mirror Name]" aus. Erstellen eines Containers: Verwenden Sie "Docker erstellen [Optionen] [Spiegelname] [Befehle und Parameter]". Starten Sie den Container: Führen Sie "Docker Start [Container Name oder ID]" aus. Containerstatus überprüfen: Stellen Sie sicher, dass der Container mit "Docker PS" ausgeführt wird.

See all articles