如何配置 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 上工作。
更新: 我忘记说明了:
- Gunicorn 运行 仅适用于 192.168.1.15:8001(使用此静态 ip)
- Lighttpd 运行 端口 80(默认端口)
- Debian 安装在我必须从同一网络上连接的每台设备访问的服务器上
根据描述,听起来 lighttpd 运行 在端口 80 上,gunicorn 在端口 8001 上。如果 gunicorn 正在创建引用端口 8001 的内容,那么客户端将直接连接到 gunicorn(如果gunicorn 正在监听 *:8001 而不是 127.0.0.1:8001) 并且会绕过 lighttpd,因此 lighttpd 永远不会看到它。您应该更喜欢使用相对根目录的链接(在 url 路径中以 / 开头)。
我明白问题出在哪里了。配置是对的,但我忘记在server.modules中包含"mod_proxy"。
添加模块(并重新启动 lighttpd)后一切正常。
我希望它对某人有用。
我有一个用 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 上工作。
更新: 我忘记说明了:
- Gunicorn 运行 仅适用于 192.168.1.15:8001(使用此静态 ip)
- Lighttpd 运行 端口 80(默认端口)
- Debian 安装在我必须从同一网络上连接的每台设备访问的服务器上
根据描述,听起来 lighttpd 运行 在端口 80 上,gunicorn 在端口 8001 上。如果 gunicorn 正在创建引用端口 8001 的内容,那么客户端将直接连接到 gunicorn(如果gunicorn 正在监听 *:8001 而不是 127.0.0.1:8001) 并且会绕过 lighttpd,因此 lighttpd 永远不会看到它。您应该更喜欢使用相对根目录的链接(在 url 路径中以 / 开头)。
我明白问题出在哪里了。配置是对的,但我忘记在server.modules中包含"mod_proxy"。 添加模块(并重新启动 lighttpd)后一切正常。 我希望它对某人有用。