2016-12-20 8 views
1

CentOS 7, auf dem Apache 2.4.6 ausgeführt wird, fungiert als zentraler Front-Front-Webserver zum Internet. Als solche hat es einige Reverse-Proxy-Verbindungen eingerichtet. Sie alle verweisen auf andere LAMPs und arbeiten großartig. Allerdings habe ich einen IIS-Server, auf dem eine .Net/ASP-Website läuft, die einfach nicht richtig geladen werden soll. Mit der Konfiguration unten auf dem Apache lädt die IIS-Website alle html & css Sachen.Apache Reverse Proxy nach IIS

<VirtualHost *:80> 
    SeverName example.com 
    ProxyRequests Off 
    ProxyPreserveHost On 
    ProxyPass /extDirectory/ http://internalserver/internalDirectory/ 

    <Location /extDirectory/ > 
     ProxyPassReverse http://internalserver/internalDirectory/ 
     Order allow,deny 
     Allow from all 
    </Location> 

</VirtualHost> 

aber es sieht aus wie ein sessionID Panne pro diesem Screenshot ist während Standort Zugriff auf extern: External-gets-error

Im Vergleich zum Zugriff auf derselben Website intern: internal-is-OK

Apache-Log und was ich kann Sammeln aus dem IIS-Protokoll zeigen keine Fehler. Der einzige Fehler, den ich bekomme, ist, wenn ich das IE Build in Entwickler-Tools verwende und die "200 Authorization not found" sehe, obwohl ich mich erfolgreich eingeloggt habe.

Antwort

1

Ich konnte dies nicht mit Apache beheben, da der ASP.Net-Entwickler mit einer Korrektur ihrer Software fertig war. Dies ist ihre Antwort und Lösung:

Enterprise erstellt Autorisierungstoken, die zur Authentifizierung jeder auf den Server eingehenden Anforderung verwendet werden. Jede AJAX-Anfrage muss ein gültiges Authentifizierungs-Token haben oder wird abgelehnt. Ein Teil des Tokens ist die IP-Adresse des Endbenutzers. Wenn sich die IP-Adresse in der AJAX-Anfrage von der ursprünglichen Anmeldeanforderung unterscheidet, schlägt die Token-Validierung fehl und die AJAX-Anfrage wird abgelehnt. Enterprise v6.5.2 ermittelt die IP-Adresse des Endbenutzers, indem es nach drei bestimmten HTTP-Headern in dieser Reihenfolge sucht: HTTP_X_CLUSTER_CLIENT_IP, HTTP_X_FORWARDED_FOR, REMOTE_ADDR. Wir denken, dass der Proxy-Server möglicherweise eine andere IP-Adresse für die AJAX-Anfrage sendet, was dann dazu führen würde, dass die Token-Validierung fehlschlägt und die AJAX-Anfrage zurückgewiesen wird.

Open Enterprise web.config und in der Nähe der oberen Fügen Sie diese Zeile direkt unter dem Element:

<add key="USER_HOST_ADDRESS" value="127.0.0.1" /> 

Speichern und schließen web.config, dann IIS neu starten.

Das ist es. Es stellte sich heraus, dass es sich um ein ASP.NET-Problem und nicht um einen Apache handelte.

Verwandte Themen