Вопрос

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

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

Но с Seaside 3.0 он переписывает URL, чтобы сказать http: // localhost/pharo При доступе к нему по сети.

Кто -нибудь мог подавать Pharo и Seaside 3 с LightTPD?

Это было полезно?

Решение

Следующее сработало, я расстроил следующую строку в этом методе как 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

В моей морской конфигурации моего приложения все настройки сервера (URL -адрес базы ресурсов, имя хоста сервера, путь сервера, порт сервера, протокол сервера) не определены.

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top