2017-11-08 5 views
1

Ich stelle derzeit eine Reihe von Diensten in Containern bereit, von denen einer ein Apache-Server ist, der als Proxy zwischen dem Client und einem Anwendungsserver dient.Docker - Apache HTTP Proxy - Dynamischer Servername

Mein Problem ist, dass, wenn die ServerName-Anweisung nicht genau mit dem Namen des Servers übereinstimmt, auf dem der Benutzer navigiert, Apache nichts mit der Anfrage tut. Derzeit ist es fest codiert.

Zum Beispiel:

Benutzer A navigiert zu: https://myapp.example.com/

Meiner Apache Config wie folgt aussieht:

<VirtualHost *:443> 
    Header set Access-Control-Allow-Origin "*" 
    UseCanonicalName On 
    ProxyPreserveHost On 
    ServerName myapp.example.com 

    ProxyPass   / http://application:3000/ keepalive=On retry=0 
    ProxyPassReverse / http://application:3000/ 

</VirtualHost> 

ich den 'Server' Richtlinie soll dynamisch und nicht hartcodiert sein. Gibt es einen Weg dazu?

+0

Stack Overflow ist eine Website für Programmier- und Entwicklungsfragen. Diese Frage scheint off-topic zu sein. Siehe [Welche Themen kann ich hier fragen?] (Https://stackoverflow.com/help/on-topic) in der Hilfe. Vielleicht [Server Fault] (https://serverfault.com) wäre ein besserer Ort, um über Apache HTTP-Konfiguration zu fragen – Matt

Antwort

1

Versuchen das Hinzufügen von Server alias

ServerAlias *.com 

afrer Direktive Server.

+0

Sollte die ServerName-Direktive das gleiche Format folgen? ServerName * .com ServerAlias ​​* .com Wieder möchte ich nicht hardcodieren. Vielen Dank! – Bryce

+0

@Bryce Es sollte ohne * in ServerName funktionieren. Nicht sicher, dass Platzhalterzeichen in ServerName zulässig sind. Sie könnten auch die Tatsache verwenden, dass es standardmäßig ersten vhost-Eintrag wird, wenn das Spiel nicht gefunden wurde –

+0

Das hat @Andrija funktioniert. Vielen Dank! – Bryce