如何配置 lighttpd 为 django 静态文件提供服务?

How to configure lighttpd to serve django static files?

我有一个用 Django 2.0.5 制作的 Web 应用程序,安装在 Debian 9 的虚拟环境中,我在上面安装了 Gunicorn 和 lighttpd。 我在 /opt/djangoproject/mywebapp 中安装了我的网络应用程序。 我配置了 lighttpd,将这些行添加到我的 lighttpd.conf

$HTTP["url"] !~ "/static" {
proxy.server = ( "" => ( (
"host" => "192.168.1.15", 
"port" => 8001
) ) )
}

alias.url = ( "/static/" => "/opt/djangoproject/mywebapp/mystaticfiles" )

问题是别名只能在端口 80 上工作,而不是在 8001 上工作。

更新: 我忘记说明了:

根据描述,听起来 lighttpd 运行 在端口 80 上,gunicorn 在端口 8001 上。如果 gunicorn 正在创建引用端口 8001 的内容,那么客户端将直接连接到 gunicorn(如果gunicorn 正在监听 *:8001 而不是 127.0.0.1:8001) 并且会绕过 lighttpd,因此 lighttpd 永远不会看到它。您应该更喜欢使用相对根目录的链接(在 url 路径中以 / 开头)。

我明白问题出在哪里了。配置是对的,但我忘记在server.modules中包含"mod_proxy"。 添加模块(并重新启动 lig​​httpd)后一切正常。 我希望它对某人有用。