Ich benutze Apache. Wie verzweige ich eine Web-Service-Anfrage, damit die beiden App-Server die gleiche Anfrage erhalten können? Machen Sie sich keine Sorgen darüber, dass Sie zu viele Antworten erhalten, da einer der beiden App Server überhaupt nichts antwortet. Ich habe keine Kontrolle darüber, wer den Webservice anruft, dh SSI-Seiten sind nicht erreichbar. Kann es durch Apache-Konfiguration getan werden, anstatt benutzerdefinierte Handler zu schreiben?Wie forme ich für Apache eine Web-Service-Anfrage, damit zwei App-Server dieselbe Anfrage erhalten können?
Antwort
Ein Ansatz wäre, eine dritte Proxy-Anwendung zu schreiben, die die Anforderungen bedient und zwei interne Anforderungen an die anderen beiden Anwendungen ausführt und das gewünschte Ergebnis zurückgibt.
Alternativ mit mod_perl (oder ein reguläres Modul in C geschrieben) Sie könnte auch ein PerlAccessHandler installieren, die Anfragen abfangen konnte, eine subrequest zur ersten App machen, bevor die Ausführung in die zweite App weiterhin im Stich gelassen.
Hier ist ein einfaches Beispiel dafür, wie Sie, dass zusammen würde
package MyApache2::MyProxy;
use strict;
use warnings;
use Apache2::RequestRec();
use Apache2::Connection();
use Apache2::Const -compile => qw(FORBIDDEN OK);
sub handler {
my $r = shift;
#prepare a user agent to make the request
my $ua = LWP::UserAgent->new;
$ua->agent("MyUserAgent/0.1");
#make a request on the app1 domain with the same uri
$app1url="http://app1.domain".$r->unparsed_uri();
my $request = HTTP::Request->new(GET => $app1url);
my $response = $ua->request($request);
#check the outcome of the response
if ($response->is_success)
{
#check $response->content if you like
}
#tell apache it's ok to continue, falling through to app 2
return Apache2::Const::OK;
}
1;
Jetzt ist Ihre app2 vhost in seiner Konfiguration verwenden können, den Handler durch so etwas wie dies zu tun
<Location />
PerlAccessHandler MyApache2::MyProxy
</Location>
Weitere (ein bisschen "dreckiger") trick würde php-script automatisch zur ersten webapp vorkopieren, in der du die zweite app startest. Der Nachteil dieses Ansatzes ist, dass Sie warten müssen, bis die App 2 ° beendet wird, bevor die erste App gestartet wird. Es hängt also von der Komplexität und Geschwindigkeit Ihrer Anwendungen ab.
.Htaccess code
php_value auto_prepend_file "learn.php"
Sie könnten SSI-Seite erstellen, die damit umgehen.
index.shtml
<!--#include virtual="/path/to/app1/index.php?$QUERY_STRING -->
<!--#include virtual="/path/to/app2/index.py?$QUERY_STRING -->
http://httpd.apache.org/docs/2.2/mod/mod_include.html#includevirtual
- 1. Zwei Werte für dieselbe Variable
- 2. Wie forme ich eine Open-Source-Bibliothek richtig?
- 3. Wie forme ich die jvm für jeden Test in sbt
- 4. Können zwei log4j fileappenders in dieselbe Datei schreiben?
- 5. Kann ich zwei Adressen für dieselbe Heroku-Anwendung haben?
- 6. Wie haben Sie zwei verschiedene Intent-Filter für dieselbe Aktivität?
- 7. Zwei separate UIButtons, die sich dieselbe Presse teilen ... können nicht gleichzeitig zwei drücken
- 8. Wie forme ich den Code des gesamten Android-Betriebssystems?
- 9. Wie kann ich zwei Karten über dieselbe Liste verschmelzen? automatisch
- 10. Eine Anfrage zweimal erhalten?
- 11. So erhalten Sie Funktionsparameterlisten (damit ich eine Funktion löschen kann)
- 12. Wie verwende ich MEF, damit Plugins bestehende Funktionen überschreiben können?
- 13. Können zwei Controller für dieselbe Ansicht verwendet werden? Vorzugsweise mit UI-Router
- 14. Wie übergebe ich eine Anfrage Antwort auf eine andere Anfrage?
- 15. Zeige Indikator für zwei Anfrage
- 16. Anfrage Routing für Apache und IIS-Server
- 17. cURL Timeout, können Sie elegant damit umgehen?
- 18. Können Sie dieselbe ID für mehrere HTML-Seiten verwenden?
- 19. Wie erhalte ich die mod_python-Site, damit Clients ausgewählte Bildinhalte zwischenspeichern können?
- 20. Wie können Sie eine TensorFlow-Saite erhalten?
- 21. Wie soll ich eine Methode aufrufen, die prüft, ob zwei Entitäten auf dieselbe Datenbankeinheit verweisen?
- 22. Können Apache Proxy-Websockets für Rstudio's Shiny?
- 23. Können Sie eine eindeutige ID für ein MATLAB-Objekt erhalten?
- 24. Maven und AppServer Abhängigkeitsmanagement Best Practice
- 25. wsimport - Zwei Deklarationen verursachen eine Kollision, dieselbe Zeile wird ausgegeben
- 26. So senden Sie eine PDF-Datei an einen Progress AppServer?
- 27. Können Komprimierungsalgorithmen eine identische Ausgabe für zwei verschiedene Dateien erzeugen?
- 28. Wie können Sie eine mögliche Vorbesprechung für eine Rolle festlegen?
- 29. Nicht Token für Office365 erhalten können. Onenote
- 30. Wie kann ich dieselbe Regel für zwei Standorte in NGINX-Konfiguration haben?
Kann ich weiß, was SSI Seite? –
SSI == Serverseitige Include –
SSI = Server Side Includes. Es ist Apache-Modul für sehr einfache dynamische Seiten. http://httpd.apache.org/docs/2.2/mod/mod_include.html – vartec