Обслуживание pharo seaside 3.0 с lighttpd - PullRequest
1 голос
/ 19 января 2011

Я пытаюсь обслуживать мое приложение с помощью lighttpd. С seaside 2.8 в моем lighttpd.conf работало следующее:

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

, но с seaside 3.0 при обращении к нему через сеть он переписывает URL-адрес: "1004 *http://localhost/pharo

Кто-нибудь был в состоянии обслуживать pharo и seaside 3 с lighttpd?

Ответы [ 3 ]

1 голос
/ 20 января 2011

Следующее сработало, я раскомментировал следующую строку в этом методе так:

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 базы ресурсов, Имя хоста сервера, Путь к серверу, Порт сервера, Протокол сервера) не указаны.

Похоже, приморский пытается получить настройки сервера от родительского приложения, но я не могу его преследовать.

РЕДАКТИРОВАТЬ: Хорошо, благодаря Лукасу (см. Комментарий), все, что мне нужно было сделать, это сбросить #serverHostname в конфигурации моего приложения, найденной в «Dispatcher: /», на ноль (не указано).

0 голосов
/ 19 января 2011

Похоже, 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 ] ]

Если это (или что-то подобное) решает вашу проблему, пожалуйста, создайтебилет .

0 голосов
/ 19 января 2011

В конфигурации вашего приложения на берегу введите свой IP-адрес в поле Имя хоста сервера

...