Назад | Перейти на главную страницу

Lighttpd и Discourse (Docker): настройка mod_proxy

У меня проблемы с настройкой Lighttpd для обслуживания различных служб, размещенных на моем сервере. Lighttpd действует как прикрытие, и у меня есть несколько записей DNS, каждая для разных поддоменов, перенаправляющих на один и тот же компьютер.

Цель состоит в том, чтобы отправить эти запросы хостом на различные другие веб-серверы.

В частности, Discourse настроен как контейнер Docker. Встроенный Nginx прослушивает порт 80 контейнера, который сопоставлен с портом 3080 сервера через Docker:

$ docker ps
CONTAINER ID        IMAGE                          COMMAND                CREATED             STATUS              PORTS                                                                                                                              NAMES
7b115219788e        local_discourse/app:latest     "/sbin/runit"          11 weeks ago        Up 8 weeks          0.0.0.0:3022->22/tcp, 0.0.0.0:3080->80/tcp 

Я включил mod_proxy на Lighttpd, и вот конфигурация:

server.modules = (
        "mod_access",
        "mod_alias",
        "mod_compress",
        "mod_redirect",
        "mod_rewrite",
        "mod_proxy",
)

server.document-root        = "/var/www"
server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )
server.errorlog             = "/var/log/lighttpd/error.log"
server.pid-file             = "/var/run/lighttpd.pid"
server.username             = "www-data"
server.groupname            = "www-data"
server.port                 = 80


index-file.names            = ( "index.php", "index.html", "index.lighttpd.html" )
url.access-deny             = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

compress.cache-dir          = "/var/cache/lighttpd/compress/"
compress.filetype           = ( "application/javascript", "text/css", "text/html", "text/plain" )

# default listening port for IPv6 falls back to the IPv4 port
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"

$HTTP["host"] =~ "discourse.mydomain.com" {
    proxy.debug = 1
    proxy.server  = ( "" => ( "discourse" => ( "host" => "127.0.0.1", "port" => 3080, "fix-redirects" => 1 )))
}

Я могу сказать, что звонки поступают где-то, потому что журналы говорят мне так:

2014-11-17 21:15:55: (mod_proxy.c.1144) proxy - start
2014-11-17 21:15:55: (mod_proxy.c.1185) proxy - ext found
2014-11-17 21:15:55: (mod_proxy.c.1319) proxy - found a host 127.0.0.1 3080
2014-11-17 21:15:55: (mod_proxy.c.398) connect delayed: 10
2014-11-17 21:15:55: (mod_proxy.c.1000) proxy: fdevent-out 1
2014-11-17 21:15:55: (mod_proxy.c.1029) proxy - connect - delayed success
2014-11-17 21:15:55: (mod_proxy.c.969) proxy: fdevent-in 4
2014-11-17 21:15:55: (mod_proxy.c.667) proxy - have to read: 521
2014-11-17 21:15:55: (mod_proxy.c.969) proxy: fdevent-in 4
2014-11-17 21:15:55: (mod_proxy.c.667) proxy - have to read: 0

Тем не менее, все, что у меня есть, когда я иду в discourse.redacted.com это пустая страница - заметьте, это не ошибка 404.

Я упускаю что-то очевидное?

Могу ли я вытащить другие журналы?

Дополнительная информация: звонок discourse.redacted.com:3080 работает и доставляет меня туда.

Вы пробовали это:

proxy.server  = ("/" =>  (( "host" => "127.0.0.1", "port" => 3080, "fix-redirects" => 1 )))