У меня есть проблема, которая, я надеюсь, достаточно распространена, чтобы ее можно было быстро решить. В частности, у меня есть сервер, на котором я хочу разместить несколько веб-приложений одновременно для личного использования. Я хотел бы, чтобы это было хорошо организовано как бы то ни было.
Мой текущий подход заключается в установке / настройке каждого из веб-приложений с собственным экземпляром сервера lighttpd, работающим по протоколу HTTP через нестандартный порт (8080, 8081, 8082 и т. Д.). Затем я использую системный сервер lighttpd в качестве прокси для каждого из этих веб-приложений. Так например myurl.com/tt-rss/
прокси к 127.0.0.1:8080/tt-rss/
и так далее. «Основной» экземпляр lighttpd также будет отвечать за запуск HTTPS (доступ к портам, используемым веб-приложениями, ограничен только localhost), поэтому я считаю, что это удобный способ обработки HTTPS в одном месте, а не необходимость его настройки для каждого отдельного веб-приложения.
Проблема у меня заключается в следующем: я пытаюсь запустить веб-приложение Shout для IRC, которое работает на Node.js и по умолчанию просто работает на порту 9000. Проблема в том, что URL-адрес для этого myurl.com:9000
и не myurl.com:9000/shout/
это означает, что если бы я использовал описанный выше подход с проксированием, это означало бы, что я могу использовать только прокси myurl.com => 127.0.0.1:9000
, но это не способствует запуску других подобных приложений на моем сервере. Я хотел бы иметь возможность настройки прокси: myurl.com/shout/ => 127.0.0.1:9000/
Я предполагаю, что мне нужно использовать mod_proxy
а также mod_rewrite
согласованно для этого, но я не уверен, как это сделать. Я надеялся, что кто-нибудь сможет помочь.
Заранее спасибо.
shout.myurl.com
указал на него, используя моего провайдера доменных имен, на тот же сервер, а затем добавил следующее в мою конфигурацию в lighttpd: $HTTP["host"] == "shout.myurl.com" { proxy.debug = 1 proxy.server = ( "" => ( ("host" => "127.0.0.1", "port" => 9000) ) ) }