Deixa pra lá, funcionou agora.
Oh espere, você pensou que é tudo? Não, colegas usuários de mecanismos de busca e de falha de servidor, aqui está um guia sobre como configurar o lighttpd com o Webmin em execução em uma subpasta. Aproveite!
Pré-requisitos
O objetivo deste guia é configurar uma instalação lighttpd junto com o Webmin, para que seja possível acessar a interface Webmin no * link .
Quando este guia foi escrito, a versão atual do Webmin era 1.580, e a versão lighttpd usada era a 1.4.28. Eu suponho que você já tenha instalado os dois. O nome "myhost" sempre denota o nome do host da máquina na qual o lighttpd é executado.
Etapas
1. Configuração do Webmin
Como mencionado no guia oficial do Apache, você deve adicionar as seguintes linhas ao / etc / webmin / config:
webprefix=/webmin
webprefixnoredir=1
referer=myhost
2. Desativar SSL no Webmin
Sim, você ouviu bem, e como Shane Madden mencionou no comentário acima, isso não é inseguro, já que a comunicação é assim:
client <----SSL----> myhost <--Loopback--> myhost:10000
O Webmin estará se comunicando com a instância do lighttpd em execução no myhost através do dispositivo de loopback, que está dentro da máquina, que normalmente só pode ser obversed com privilégios de superusuário. A comunicação entre o cliente e o lighttpd ainda estará usando o SSL.
Então e como desativar o SSL no Webmin? Basta editar a seguinte linha no /etc/webmin/miniserv.conf:
ssl=0
3. Configuração do Lighttpd
Adicione as seguintes linhas ao seu /etc/lighttpd/lighttpd.conf:
$HTTP["url"] =~ "^/webmin" {
magnet.attract-physical-path-to = ( "/var/www/webmin/conf/webmin-rewrite.lua" )
proxy.server = ( "" =>
( (
"host" => "127.0.0.1",
"port" => 10000,
) ) )
}
Como você pode ver, verificamos se o URL começa com "/ webmin" e o redirecionamento para a instância do Webmin ouvindo 127.0.0.1:10000. No entanto, o Webmin não espera ter o caminho adicional "... / webmin" em seu URL de solicitação, portanto, temos que retirar isso do URL. No entanto, como estamos em uma condição $ HTTP ["url"] -, não podemos usar nenhuma técnica de reescrita de URL apresentada pelo mod_rewrite. (Caso contrário, simplesmente diríamos "strip-request-uri" = > "/ webmin", mas isso não funcionará. Esse é um problema conhecido, não corrigido, do lighttpd 1.4. Veja também a documentação do mod_rewrite.) pode usar mod_magnet para reescrever a URL em um script LUA.
4. Script LUA para mod_magnet
Crie /var/www/webmin/conf/webmin-rewrite.lua com o seguinte conteúdo:
subfolder = "/webmin"
n = string.len(subfolder)
if string.sub(lighty.env["request.uri"], 1, n) == subfolder then
lighty.env["request.uri"] = string.sub(lighty.env["request.uri"], n+1)
end
Isso retira o prefixo "/ webmin" dos URLs de solicitação.
5. Alterações de código para corrigir redirecionamentos
Isso já funciona quase, no entanto, ainda há um bug no código de redirecionamento do Webmin, também mencionado aqui . Em /usr/share/webmin/miniserv.pl, altere a linha
&write_data("Location: $prot://$host$portstr$in{'page'}\r\n");
para
&write_data("Location: $prot://$host$config{'subfolder_prefix'}$in{'page'}\r\n");
E em /etc/webmin/miniserv.conf, adicione a linha:
subfolder_prefix=/webmin
Isso corrige o redirecionamento de login do Webmin e está pronto!
Mais notas
A partir do lighttpd versão 1.5, você provavelmente pode substituir o script LUA pelo mod_proxy_core, já que é capaz de reescrever os URLs de solicitação. No entanto, eu não tentei isso.
Além disso, como não há mais necessidade de acessar a porta 10000 do lado de fora, sugiro bloqueá-la:
iptables -A INPUT -i eth0 -p tcp --dport 10000 -j REJECT --reject-with tcp-reset
No entanto, este comando pode variar dependendo da sua configuração local.