1

私はlighttpdでアプリを提供しようとしています。シーサイド2.8では、以下が私のlighttpd.confで機能しました。

proxy.server = ( "/pharo" => (
    ( "host" => "127.0.0.1", "port" => 8080, "check-local" => "disable"))
)

ただし、seaside 3.0では、ネットワーク経由でアクセスするときにURLをhttp:// localhost/pharoに書き換えます。

誰でもlighttpdでpharoとseaside3を提供できましたか?

4

3 に答える 3

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(コメントを参照)のおかげで、私がしなければならなかったのは、「ディスパッチャー:/」にあるアプリケーション構成の#serverHostnameをnil(詳細不明)にリセットすることだけでした。

于 2011-01-20T11:52:00.360 に答える
0

アプリの seaside 設定で、IP アドレスを Server Hostname フィールドに入力します。

于 2011-01-19T07:52:59.223 に答える
0

lighttpd は、Apache とは異なる元のホスト名を転送するようです。を入れて、受信した request#haltWAUrl>>#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 ] ]

これ (または同様のもの) で問題が解決する場合は、チケットを作成してください。

于 2011-01-19T15:06:38.980 に答える