我正在尝试使用lighttpd提供我的应用程序。在海边2.8,以下工作在我的lighttpd.conf中:
proxy.server = ( "/pharo" => (
( "host" => "127.0.0.1", "port" => 8080, "check-local" => "disable"))
)
但是对于海边3.0,它会在通过网络访问时重写说http://localhost/pharo的网址。
任何人都能用lighttpd服务pharo和海滨3?
答案 0 :(得分:1)
以下确实有效,我在这个方法中取消注释以下行:
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
在我的应用程序的海边配置中,未指定所有服务器设置(资源库URL,服务器主机名,服务器路径,服务器端口,服务器协议)。
看起来海边试图从某些应用程序父级获取服务器设置,但我不能追逐它。
编辑:好的,感谢Lukas(请参阅评论),我所要做的就是将我在“Dispatcher:/”中找到的应用程序配置中的#serverHostname重置为nil(未指定)。
答案 1 :(得分:0)
在应用的海边配置中,将您的IP地址放在服务器主机名字段
中答案 2 :(得分:0)
看起来lighttpd会转发与Apache不同的原始主机名。将#halt
放入WAUrl>>#takeServerParametersFromRequest:
并检查传入的请求aRequest
。据推测,有一个名为X-Forwarded-Host
的标题字段包含原始主机名,如果是这样,则更改方法如下:
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 ] ]
如果这个(或类似的东西)解决了您的问题,请create a ticket。