Experimente a configuração abaixo.
Não deixe de ver os comentários na seção location = /fossil/
. Também tenha em mente que os pedidos para / fossil / (whatever) se tornam / (whatever), portanto, quaisquer urls retornados em seu conteúdo devem ser / fossil / (whatever) e not / (whatever). Se necessário, você pode usar o sub_filter no lado nginx para substituir / fossil / (whatever) por / (whatever) quando o conteúdo for retornar ao cliente.
location = /fossil/ {
# matches /fossil/ query only
#
# if Apache isn't configured to serve index.php as the index
# for /fossil/ uncomment the below rewrite and remove or comment
# the proxy_pass
#
# rewrite /fossil/ /fossil/index.php;
proxy_pass http://127.0.0.1:8080;
}
location = /fossil/index.php {
# matches /fossil/index.php query only
proxy_pass http://127.0.0.1:8080;
}
location /fossil/ {
# matches any query beginning with /fossil/
proxy_pass http://127.0.0.1:8080/;
}
location /webmin/ {
# matches any query beginning with /webmin/
proxy_pass http://127.0.0.1:10000/;
}
location / {
# matches any query, since all queries begin with /, but regular
# expressions and any longer conventional blocks will be
# matched first.
proxy_pass http://127.0.0.1:8001;
}
# locations to be handled by nginx go below