Serving pharo Meer 3.0 mit lighttpd
Frage
Ich versuche, meine app mit lighttpd zu dienen. Mit Meer 2.8 die in meinem lighttpd.conf arbeitete folgende:
proxy.server = ( "/pharo" => (
( "host" => "127.0.0.1", "port" => 8080, "check-local" => "disable"))
)
aber mit Meer 3.0 es umschreibt die URL sagen http: // localhost / pharo , wenn es über ein Netzwerk zugreifen.
Wer in der Lage gewesen pharo und Meer, 3 mit lighttpd zu dienen?
Lösung
In der folgenden funktionierte, unkommentiert ich die folgende Zeile in diesem Verfahren etwa so:
WARequestHandler>>url
| url |
url := self basicUrl.
self serverPath isNil ifFalse: [ url parsePath: self serverPath ].
self serverProtocol isNil ifFalse: [ url scheme: self serverProtocol ].
"self serverHostname isNil ifFalse: [ url host: self serverHostname ]."
self serverPort isNil ifFalse: [ url port: self serverPort ].
^ url
In meinem Meer Konfiguration meiner Anwendung alle die Server-Einstellungen (Ressourcenbasis URL, Server-Hostname, Server-Pfad, Server-Port, Server Protocol) sind nicht spezifiziert.
Es scheint, wie am Meer versucht, die Servereinstellungen von einigen Anwendungen Eltern zu bekommen, aber ich kann es nicht jagen.
EDIT: Ok, dank Lukas (siehe Kommentar), alles, was ich hatte, war, die #serverHostname in meiner Anwendungskonfiguration zurückgesetzt bei gefunden "Dispatcher: /". Auf Null (nicht spezifiziert)
Andere Tipps
In der Küsten Config Ihrer App, setzen Sie Ihre IP-Adresse im Server-Hostnamen Feld
Sieht aus wie lighttpd leitet die ursprüngliche Host-Namen anders als Apache tut. Setzen Sie ein #halt
in WAUrl>>#takeServerParametersFromRequest:
und überprüfen Sie die eingehende Anfrage aRequest
. Vermutlich gibt es einen Header-Feld namens X-Forwarded-Host
, die den ursprünglichen Hostnamen enthält, wenn so das Verfahren wie folgt ändern:
WAUrl>>takeServerParametersFromRequest: aRequest
"Retrieves scheme, hostname and basepath from the request unless already set."
scheme isNil
ifTrue: [ self scheme: aRequest url scheme ].
host isNil ifTrue: [
aRequest headers at: 'x-forwarded-host' ifPresent: [ :value | self parseAuthority: value ].
host isNil
ifTrue: [ aRequest headers at: 'host' ifPresent: [ :value | self parseAuthority: value ] ] ].
path isNil
ifTrue: [ aRequest headers at: 'base' ifPresent: [ :value | self parsePath: value ] ]
Wenn diese (oder so ähnlich) löst Ihr Problem, bitte erstellen ein Ticket .