Помогите, пожалуйста, создать правильный lighttpd.conf

Автор praxys, 19 июля 2025, 09:17:41

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

praxys

Добрый день! Развиваю один проект, хотел бы увидеть, как правильно настроить проксирование сервисов на портах 4533 и 8000, в идеале вообще любых портах таким образом, чтобы все это было секьюрно. К примеру, у меня поднят сервис Navidrome на 4533 порту, можно ли настроить обратный прокси lighttpd таким образом, чтобы при переходе на http://domain.org:4533 происходило перенаправление на 443 порт https://domain.org/app1

Еще проблема в том, что один из известных искусственных интеллектов немного подсказал как это сделать, я сделал, но теперь при переходе на https://domain.org/app1 мои логин и пароль не подходят

Вот мой конфигурационный файл lighttpd.conf, прошу помочь с решением вопроса. К слову, перенаправление с http на https почему-то тоже не работает.


server.modules = (
        "mod_indexfile",
        "mod_alias",
        "mod_access",
        "mod_redirect",
        "mod_proxy",
)

server.document-root        = "/var/www/my_website"
server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )
server.errorlog             = "/var/log/lighttpd/error.log"
server.pid-file             = "/run/lighttpd.pid"
server.username             = "www-data"
server.groupname            = "www-data"
server.port                 = 80

# features
#https://redmine.lighttpd.net/projects/lighttpd/wiki/Server_feature-flagsDetails
server.feature-flags       += ("server.h2proto" => "enable")
server.feature-flags       += ("server.h2c"     => "enable")
server.feature-flags       += ("server.graceful-shutdown-timeout" => 5)
#server.feature-flags       += ("server.graceful-restart-bg" => "enable")

# strict parsing and normalization of URL for consistency and security
# https://redmine.lighttpd.net/projects/lighttpd/wiki/Server_http-parseoptsDetails
# (might need to explicitly set "url-path-2f-decode" = "disable"
#  if a specific application is encoding URLs inside url-path)
server.http-parseopts = (
  "header-strict"           => "enable",# default
  "host-strict"             => "enable",# default
  "host-normalize"          => "enable",# default
  "url-normalize-unreserved"=> "enable",# recommended highly
  "url-normalize-required"  => "enable",# recommended
  "url-ctrls-reject"        => "enable",# recommended
  "url-path-2f-decode"      => "enable",# recommended highly (unless breaks app)
 #"url-path-2f-reject"      => "enable",
  "url-path-dotseg-remove"  => "enable",# recommended highly (unless breaks app)
 #"url-path-dotseg-reject"  => "enable",
 #"url-query-20-plus"       => "enable",# consistency in query string
)

index-file.names            = ( "index.php", "index.html" )
url.access-deny             = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

# default listening port for IPv6 falls back to the IPv4 port
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.conf.pl"
include "/etc/lighttpd/conf-enabled/*.conf"

#server.compat-module-load   = "disable"
server.modules += (
        "mod_dirlisting",
        "mod_staticfile",
        "mod_openssl",
)

debug.log-request-handling = "enable"

        $SERVER["socket"] == ":443" {
          ssl.engine = "enable"
          ssl.pemfile = "/etc/letsencrypt/live/darkside.zapto.org/fullchain.pem"
          ssl.privkey = "/etc/letsencrypt/live/darkside.zapto.org/privkey.pem"
          # Другие настройки SSL, если необходимо
          #proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => 4533 ) ) )

        }

server.modules += ( "mod_redirect" )

$HTTP["scheme"] == "http" {
    url.redirect = (
        "^/(.*)" => "https://%0/$1"
    )
}

# Обратный прокси для Navidrome
$HTTP["host"] == "darkside.zapto.org" {
    proxy.server = (
        "/app/#" => (
            "" => (
                "host" => "127.0.0.1",
                "port" => 4533
            )
        )
    )
}