Вопрос или проблема
Я пытаюсь настроить HTTPS веб-интерфейс для transmission. В настоящее время я могу получить доступ к веб-интерфейсу transmission по http://myip:8081, и я хочу подключаться по https://myip/transmission. Я уже настроил свой lighttpd с TSL/SSL, так что я могу получить доступ к странице по умолчанию по https://myip.
Я включил mod_proxy.
lighty-enable-mod proxy
Таким образом, в /etc/lighttpd/conf-enabled у меня есть 10-proxy.conf, который на самом деле является символической ссылкой на /etc/lighttpd/conf-available/10-proxy.conf, и этот файл содержит:
server.modules += ( "mod_proxy" )
Затем в lighttpd.conf я добавил:
$SERVER["socket"] == "0.0.0.0:443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/certs/cert.pem"
ssl.cipher-list = "ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM"
ssl.honor-cipher-order = "enable"
}
$HTTP["url"] == "^/transmission/" {
proxy.server = ("" => ( (
"host" => "127.0.0.1",
"port" => 8081
))
)
}
Затем я перезагрузил конфигурацию lighttpd.
service lighttpd force-reload
Синтаксис конфигурации в порядке, но когда я пытаюсь получить доступ к https://myip/transmission/, я получаю страницу 404 Не найдено.
С конфигурацией, данной в оригинальном вопросе, lighttpd отправляет запрос на 127.0.0.1 порт 8081 как “GET /transmission/ HTTP/1.1”. Если сервер transmission ожидает, что запрос будет “/” вместо “/transmission/”, то смотрите proxy.header
"map-urlpath"
, доступный в lighttpd 1.4.46 и позже. https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModProxy
Ответ или решение
Для того чтобы настроить HTTPS web-интерфейс для Transmission через обратный прокси Lighttpd, необходимо учесть несколько важных моментов. Ваша конфигурация на первом этапе создает необходимые условия для передачи запросов, однако, судя по возникшей ошибке 404, есть нюансы, которые необходимо исправить.
Шаги по настройке Lighttpd для Transmission
-
Проверка конфигурации SSL:
Вы уже настроили SSL, что отлично. Убедитесь, что ваш файл сертификата (/etc/lighttpd/certs/cert.pem
) корректен и доступен для чтения службой Lighttpd. Убедитесь также, что все промежуточные сертификаты включены в файл. -
Проверка модуля proxy:
Модуль прокси включен, и это правильно. Ваша конфигурация для этого выглядит корректно. -
Проблема с URL:
Основная причина ошибки 404 в том, что Transmission, скорее всего, ожидает получить запрос на корневой путь (/
), а не на/transmission/
. Чтобы правильно настроить прокси, используйте настройкуproxy.header
с параметромmap-urlpath
, если ваша версия Lighttpd не ниже 1.4.46.
Изменение конфигурации
Дополните вашу конфигурацию следующим образом:
$HTTP["url"] == "^/transmission/(.*)" {
proxy.server = ("" => ((
"host" => "127.0.0.1",
"port" => 8081,
"check-local" => "disable"
)))
# Перенаправление пути
proxy.header = (
"map-urlpath" => (
"/transmission/" => "/"
)
)
}
Перезагрузка сервера
После внесения изменений в конфигурацию не забудьте перезагрузить Lighttpd:
service lighttpd force-reload
Дополнительные рекомендации
-
Логирование: Включите логирование для вашего прокси, чтобы отслеживать происходящие ошибки. Это поможет диагностировать проблемы с перенаправлениями или другие ошибки.
-
Firewall: Убедитесь, что firewall (iptables, ufw и т.д.) не блокирует порт 8081 для локальных запросов.
-
Правильные права доступа: Проверьте, что у Lighttpd есть необходимые права на доступ к файлам и каталогам вашего сертификата.
Заключение
Теперь вы должны иметь возможность получить доступ к Transmission по адресу https://myip/transmission/
. Корректировка пути с помощью map-urlpath
позволит Lighttpd правильно перенаправлять запросы к серверу Transmission. Если у вас возникнут дополнительные проблемы, рассмотрите возможность обращения к документации Lighttpd или сообществу, чтобы получить больше информации о конфигурации.