Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So verwenden Sie den Nginx-Reverse-Proxy und den Lastausgleich, um eine Testumgebung für mehrere Personen aufzubauen

So verwenden Sie den Nginx-Reverse-Proxy und den Lastausgleich, um eine Testumgebung für mehrere Personen aufzubauen

PHPz
PHPznach vorne
2023-05-23 17:29:471141Durchsuche

Implementierungsprinzip

Wenn wir eine Website besuchen, befindet sich im Anforderungsheader ein User-Agent-Header, z. B. Mozilla/5.0 (Macintosh; Intel Mac OS

So verwenden Sie den Nginx-Reverse-Proxy und den Lastausgleich, um eine Testumgebung für mehrere Personen aufzubauen

Wie im Bild gezeigt, wird hier ein benutzerdefiniertes UA hinzugefügt und der Inhalt wird über diese UA-Anfrage-Website in Ihren eigenen Namen geändert kann verlangen Wenn du ua in deinem Kopf siehst, wird es zu deinem eigenen. Dies ist ein Zeichen.

Gemäß diesem UA wird es von Nginx beurteilt. Verschiedene UA werden an verschiedene Ports weitergeleitet, und jeder Port entspricht einem Website-Verzeichnis.

nginx bestimmt ua

Sie können den UA jeder Anfrage über Nginx, also die Variable $http_user_agent, abrufen.

Zum Beispiel können Sie in der Standortdomäne ua wie folgt bestimmen und ein Flag setzen:

if ( $http_user_agent ~ "dashen" ) {
 set $flag "01";
}

Wenn Sie beispielsweise feststellen, dass der Inhalt von ua gestrichelt ist, Wenn Sie $flag auf 01 setzen, können Sie viele solcher Logos festlegen.

Nginx-Reverse-Proxy und Lastausgleich

Durch die Beurteilung verschiedener UA können wir über Reverse-Proxy an verschiedene Maschinen und Ports weiterleiten, hier das Gleiche Die Testmaschine kann an verschiedene Ports dieser Maschine weitergeleitet werden, wobei sie verschiedene Ports abhört und verschiedene Website-Verzeichnisse einrichtet.

Die Details sind wie folgt:

server
{
 listen 192.168.1.251:80;
 server_name *.example.com;
 index index.html index.htm index.php;
 charset utf-8;
 location / {
 set $flag "00";
 if ( $http_user_agent ~ "dashen" ) {
   set $flag "01";
  }
 if ( $http_user_agent ~ "mianwo" ) {
   set $flag "02";
  }
 if ( $http_user_agent ~ "bingkuai" ) {
   set $flag "03";
  }
 if ( $http_user_agent ~ "hadoop" ) {
   set $flag "04";
  }
  proxy_set_header host $host;
  proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
  if ( $flag = "00" ){
   add_header z-server mobile;
   proxy_pass http://webserver_mobile;
  }
  if ( $flag = "01" ){
   add_header z-server dashen;
   proxy_pass http://webserver_dashen;
  }
  if ( $flag = "02" ){
   add_header z-server mianwo;
   proxy_pass http://webserver_mianwo;
  }
  if ( $flag = "03" ){
   add_header z-server bingkuai;
   proxy_pass http://webserver_bingkuai;
  }
  if ( $flag = "04" ){
   add_header z-server hadoop;
   proxy_pass http://webserver_hadoop;
  }
 }
}

Diese Konfiguration leitet verschiedene UA-Anfragen per Reverse-Proxy an verschiedene Lastausgleichsserver weiter. Siehe die spezifische Lastausgleichskonfiguration unten.

nginx-Lastausgleichskonfiguration

Hier werden mehrere Lastausgleichskonfigurationen definiert, und jede Lastausgleichskonfiguration konfiguriert tatsächlich nur eine Maschine, das heißt, verschiedene Ports dieser Maschine.

upstream webserver_mobile{
 server 127.0.0.1:8900 max_fails=2 weight=2 fail_timeout=10s;
}
upstream webserver_dashen{
 server 127.0.0.1:8901 max_fails=2 weight=2 fail_timeout=10s;
}
upstream webserver_mianwo{
 server 127.0.0.1:8902 max_fails=2 weight=2 fail_timeout=10s;
}
upstream webserver_bingkuai{
 server 127.0.0.1:8903 max_fails=2 weight=2 fail_timeout=10s;
}
upstream webserver_hadoop{
 server 127.0.0.1:8904 max_fails=2 weight=2 fail_timeout=10s;
}

Als nächstes müssen Sie mehrere virtuelle Nginx-Hosts konfigurieren. Der Unterschied besteht darin, dass Sie mehrere verschiedene virtuelle Hosts abhören müssen Konfigurationen haben nur unterschiedliche Website-Verzeichnisse. Wenn ua ​​beispielsweise dashen ist, ist das entsprechende Website-Verzeichnis /vhosts/example.com/dashen. Wenn ua ​​mianwo ist, ist das entsprechende Website-Verzeichnis /vhosts/example.com/mianwo.# 🎜 🎜#

Auf diese Weise können verschiedene Tester Zweige in das Website-Verzeichnis ziehen, die ihrem eigenen UA entsprechen, und ihr eigenes UA über das Browser-Plug-in konfigurieren, sodass mehrere Personen gleichzeitig verschiedene Dateien auf einem Computer abrufen können Gleichzeitige Zweige und Zugriff auf denselben Domänennamen, das Stammverzeichnis der Website ist nach verschiedenen UAs getrennt und hat keinen Einfluss auf einander.


Das obige ist der detaillierte Inhalt vonSo verwenden Sie den Nginx-Reverse-Proxy und den Lastausgleich, um eine Testumgebung für mehrere Personen aufzubauen. 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