Вопрос или проблема
Я пытаюсь написать конфигурацию lighttpd для проксирования запросов на мой Gotify сервер.
Gotify предлагает несколько конфигураций для различных веб-серверов, но ничего для lighttpd.
Кто-нибудь достаточно знаком с mod_proxy
в lighttpd, чтобы помочь мне с конфигурацией?
Пока что я попробовал:
server.modules += ( "mod_proxy" )
$HTTP["url"] =~ "^/gotify" {
accesslog.filename = "/var/log/gotify.log"
server.errorlog = "/var/log/gotify.error.log"
proxy.server = (
"" => ( (
"host" => "192.168.1.1",
"port" => 70
) )
)
proxy.header = ( "upgrade" => "enable" )
proxy.forwarded = ( "for" => 1,
"proto" => 1,
"host" => 1,
"by" => 1,
#"remote_user" => 1
)
}
…но когда я пытаюсь получить доступ к: http://{lighthttpd IP}/gotify
, я получаю следующую ошибку:
{"error":"Not Found","errorCode":404,"errorDescription":"страница не найдена"}
Ответ или решение
Настройка Lighttpd в качестве прокси для Gotify
Lighttpd является эффективным веб-сервером, который можно использовать в качестве обратного прокси для Gotify, приложения, предназначенного для отправки уведомлений. Ваша текущая конфигурация имеет хороший старт, но, похоже, требует нескольких доработок, чтобы запросы правильно обрабатывались и перенаправлялись.
Основные шаги по настройке
-
Включение необходимых модулей: Убедитесь, что вы активировали модули
mod_proxy
иmod_access
. Если они еще не включены, добавьте их в конфигурацию сервера. -
Правильная настройка прокси: Ваш текущий конфиг указывает на запросы, содержащие множество заголовков, но, возможно, нужно улучшить обработку URL и перенаправление.
-
Проверка конфигурации Gotify: Убедитесь, что ваш сервер Gotify правильно настроен и доступен по указанному IP-адресу и порту.
Вот пример конфигурации, который может помочь вам правильно настроить Lighttpd как прокси для Gotify:
server.modules += ( "mod_proxy", "mod_access" )
# Определяем доступ
$HTTP["remoteip"] =~ "127.0.0.1|::1|192.168.1.0/24" {
# Логи для gotify
accesslog.filename = "/var/log/gotify.log"
server.errorlog = "/var/log/gotify.error.log"
# Настройка прокси
proxy.server = (
"/gotify" => (
(
"host" => "192.168.1.1",
"port" => 70,
"check-local" => "disable" # Отключаем проверку локального адреса
)
)
)
# Для обработки заголовков
proxy.header = ( "upgrade" => "enable" )
proxy.forwarded = ( "for" => 1,
"proto" => 1,
"host" => 1,
"by" => 1
)
}
# Обработка запроса на корень /gotify
url.rewrite-once = (
"^/gotify(.*)" => "/gotify$1"
)
Пояснение к конфигурации
-
Модули: Мы добавили
mod_access
, чтобы управлять доступом к вашей прокси. -
Доступ: Мы конкретизируем доступ к прокси только для локальной сети и определённых IP-адресов. Это хорошая практика для обеспечения безопасности.
-
Прокси: Конфигурация прокси настраивается так, чтобы перенаправлять любые запросы, начинающиеся с
/gotify
, на указанный хост и порт Gotify. -
Обработка URL: Используя
url.rewrite-once
, мы гарантируем, что URI будет правильно отформатирован перед тем, как запрос уйдёт на Gotify.
Проверка конфигурации
После внесения изменений перезапустите Lighttpd, чтобы применить новую конфигурацию:
sudo systemctl restart lighttpd
Затем проверьте, доступен ли Gotify по URL http://{IP вашего Lighttpd}/gotify
. Если возникнут ошибки, проверяйте логи по указанным в конфигурации путям (/var/log/gotify.log
и /var/log/gotify.error.log
).
Заключение
Следуя указанным шагам и примерам конфигурации, вы сможете успешно настроить Lighttpd как прокси для Gotify. Внимательно проверьте все параметры и логируйте режим работы приложения для выявления и устранения возможных ошибок в будущем.