Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So verwenden Sie das Nginx-Proxy-Modul

So verwenden Sie das Nginx-Proxy-Modul

WBOY
WBOYnach vorne
2023-05-17 10:01:051173Durchsuche

Nginx-Proxy-Modul

Anleitung: Es gibt viele Anweisungen im Proxy-Modul. Ich werde hier nur den wichtigen Proxy-Pass erläutern. Weitere Proxy-Anweisungen finden Sie in der offiziellen chinesischen Dokumentation.
Dieses Modul kann Anfragen an andere Server weiterleiten. http/1.0 kann keine Keepalives verwenden (der Backend-Server erstellt und löscht Verbindungen für jede Anfrage). nginx sendet http/1.1 für den Browser und http/1.0 für den Backend-Server, damit der Browser das Keepalive für den Browser übernehmen kann.
Beispiel unten:

location / {
 proxy_pass    http://localhost:8000;
 proxy_set_header x-real-ip $remote_addr;
}

Beachten Sie, dass Nginx bei Verwendung des http-Proxy-Moduls (oder sogar Fastcgi) alle Verbindungsanfragen zwischenspeichert, bevor es sie an den Backend-Server sendet. Daher wird bei der Messung der vom Backend übertragenen Daten der Fortschritt gemessen Die Anzeige ist möglicherweise falsch.

Experimentelle Topologie:

So verwenden Sie das Nginx-Proxy-Modul

7. Konfigurieren Sie den HTTP-Reverse-Proxy Verwenden Sie field:, an der Stelle Das if Feld


Dieser Befehl legt die Adresse des Proxyservers und die zugeordnete URI fest. Die Adresse kann in Form eines Hostnamens oder einer IP plus Portnummer vorliegen, zum Beispiel: Proxy_Pass http://localhost:8000/uri/;


8. Laden Sie die Konfigurationsdatei neu

[root@nginx ~]# cd /etc/nginx/
[root@nginx nginx]# cp nginx.conf nginx.conf.bak #备份一个原配置文件
[root@nginx nginx]# vim nginx.conf
location / {
        proxy_pass   http://192.168.18.201;
    }

9. Testen Sie es


Beachten Sie, dass wir beim Zugriff auf 192.168.18.208 vom Proxy zu web1 weitergeleitet werden.


10. Überprüfen Sie das Webserver-Protokoll

[root@nginx ~]# service nginx reload
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新载入 nginx:                      [确定]

Beachten Sie, dass hier alle IPs unserer Kunden die IPs des Nginx-Proxyservers sind, nicht die echten Client-IPs. Ändern wir es so, dass die Protokoll-IP die tatsächliche Client-IP anzeigt.

11. Ändern Sie die Nginx-Konfigurationsdatei.So verwenden Sie das Nginx-Proxy-Modul

[root@web1 ~]# tail /var/log/httpd/access_log
192.168.18.208 - - [04/sep/2013:00:14:20 +0800] "get /favicon.ico http/1.0" 404 289 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
192.168.18.208 - - [04/sep/2013:00:14:20 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
192.168.18.208 - - [04/sep/2013:00:14:20 +0800] "get /favicon.ico http/1.0" 404 289 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
192.168.18.138 - - [04/sep/2013:00:14:45 +0800] "get / http/1.1" 200 23 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
192.168.18.138 - - [04/sep/2013:00:14:48 +0800] "get /favicon.ico http/1.1" 404 289 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
192.168.18.208 - - [04/sep/2013:00:14:55 +0800] "get /favicon.ico http/1.0" 404 289 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
192.168.18.208 - - [04/sep/2013:00:15:05 +0800] "get /favicon.ico http/1.0" 404 289 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
192.168.18.208 - - [04/sep/2013:00:15:13 +0800] "get /favicon.ico http/1.0" 404 289 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
192.168.18.208 - - [04/sep/2013:00:15:16 +0800] "get / http/1.0" 200 23 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
192.168.18.208 - - [04/sep/2013:00:15:16 +0800] "get /favicon.ico http/1.0" 404 289 "-" "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/28.0.1500.95 safari/537.36"
erlaubt Definieren Sie einige Felder neu oder fügen Sie sie zu den Anforderungsheadern hinzu, die an den Proxy-Server gesendet werden. Dieser Wert kann ein Text, eine Variable oder eine Kombination davon sein. Proxy_set_header wird von seinem übergeordneten Feld geerbt, wenn es nicht im angegebenen Feld definiert ist.


12. Laden Sie die Konfigurationsdatei neu. Werfen wir einen Blick auf die httpd-Konfigurationsdatei.

14. Sehen Sie sich die httpd-Konfigurationsdatei an und ändern Sie sie.


location / {
    proxy_pass   http://192.168.18.201;
    proxy_set_header x-real-ip $remote_addr; #加上这一行
}

Hinweis: Der Parameter, den Sie hier im Protokoll aufzeichnen können, ist immer noch %h. Lassen Sie uns die folgenden Parameter ändern.


Hinweis: Dies ist der geänderte Parameter. Ändern Sie h% in %{x-real-ip}i. Okay, testen wir es noch einmal.


15. Starten Sie neu und testen Sie

[root@nginx ~]# service nginx reload
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新载入 nginx:                      [确定]

Beachten Sie, dass es sich bei der im Protokoll aufgezeichneten IP-Adresse um die tatsächliche Client-Adresse handelt.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie das Nginx-Proxy-Modul. 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