Heim > Betrieb und Instandhaltung > Nginx > Wie Nginx Anfragen basierend auf der URL weiterleitet

Wie Nginx Anfragen basierend auf der URL weiterleitet

WBOY
Freigeben: 2023-05-28 14:40:06
nach vorne
2563 Leute haben es durchsucht

Proxyserver: Sockerserver lauscht an einem bestimmten Port, stellt gemäß der HTTP-Nachricht eine Verbindung zum angegebenen Serverport her und stellt eine Datenanforderung Verantwortlich für die Weiterleitung des entsprechenden http-Antworttexts.
- https-Proxy
Wenn eine https-Anfrage den Proxyserver passiert, wird eine Verbindungsnachricht gesendet, um einen Tunnel mit dem Proxyserver aufzubauen. Wenn der Proxyserver http 200 zurückgibt, muss der Aufbau nur erfolgreich sein Tatsächlich ist SSL/ der TLS-Handshake immer noch zwischen dem Client und dem realen Server.

proxyservlet

Da der Back-End-Projektport 8089 auf den Server-Fastdfs-Dienst zugreifen kann, dachte ich zunächst daran, das Proxyservlet von Springboot zu verwenden, um die angegebene Anforderung an den Serverport 8088 weiterzuleiten.

Das Hauptservlet von Spring boot ist das Dispatcherservlet von springmvc, sein Standard-URL-Muster ist „/“. Wenn wir einer bestimmten URL verschiedene Aufrufe (andere Serverschnittstellen) hinzufügen möchten, müssen wir ein neues Proxy-Servlet erstellen, das servletregistrationbean verwendet und ein Neues Proxyservlet, um damit umzugehen. Überwachen Sie verschiedene Ports und senden Sie Daten und registrieren Sie sie im von Springboot verwalteten Servletkontext (legen Sie den angegebenen Server und Port sowie die Schnittstelle für die Anforderungsweiterleitung fest).
<dependency>
 <groupid>org.mitre.dsmiley.httpproxy</groupid>
 <artifactid>smiley-http-proxy-servlet</artifactid>
 <version>1.7</version>
 </dependency>
Nach dem Login kopieren
### 配置代理
#请求resource时代理转发到端口8088项目中
proxy.test.servlet_url_one= /resource/*
proxy.test.target_url_one= https://localhost:8088
Nach dem Login kopieren

Ändern Sie die Konfiguration, um

@component
@data
public class proxyfilterservlet {
 @value("${proxy.test.target_url_one}")
 private string targeturl;
 @value("${proxy.test.servlet_url_one}")
 private string servleturl;
}
Nach dem Login kopieren

hinzuzufügen. Stellen Sie über den Servlet-Container eine Verbindung mit dem Zielserver her. Schließlich ist er nicht so leistungsstark wie ein professioneller Proxyserver wie nginx

nginx – Proxy-Weiterleitung

Zu diesem Zeitpunkt dachte ich darüber nach, eine Nginx-Schicht zwischen den Servern hinzuzufügen, um verschiedene Serviceanfragen zur Verarbeitung an verschiedene Port-APIs weiterzuleiten.

Um Anfragen aus dem externen Netzwerk, die angefordert werden müssen, an denselben internen Server weiterzuleiten Netzwerkport

@configuration
public class proxyservletconfig {
 @autowired
 private proxyfilterservlet proxyfilterservlet;
 //多个代理servlet可以配置多个bean
 @bean
 public servletregistrationbean servletregistrationbean(){
 servletregistrationbean servletregistrationbean = new servletregistrationbean(new proxyservlet(), proxyfilterservlet.getservleturl());
 //这个setname必须要设置,并且多个的时候,名字需要不一样
 servletregistrationbean.setname("go_backend");
 servletregistrationbean.addinitparameter("targeturi", proxyfilterservlet.gettargeturl());
 servletregistrationbean.addinitparameter(proxyservlet.p_log, "false");
 return servletregistrationbean;
 }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie Nginx Anfragen basierend auf der URL weiterleitet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage