繁体   English   中英

Flask 应用程序部署与 lighttpd 导致错误

[英]Flask app deployment with lighttpd results in error

我正在尝试在 Raspberry Pi 上使用 lighttpd 和 fastcgi 部署我的 flask 应用程序。 不幸的是,我无法让它工作。 这是我的程序:

  • 我用sudo apt install lighttpd
  • 我用pip install flup

创建 /var/www/demoapp/hello.py

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World"

if __name__ == "__main__":
    app.run()

创建 /var/www/demoapp/hello.fcgi

#!/usr/bin/python
from flup.server.fcgi import WSGIServer
from hello import app

if __name__ == '__main__':
    WSGIServer(app).run()

将以下内容添加到 /etc/lighttpd/lighttpd.conf

fastcgi.server = ("/hello.fcgi" => ((
   "socket" => "/tmp/hello-fcgi.sock",
   "bin-path" => "/var/www/demoapp/hello.fcgi",
   "check-local" => "disable",
   "max-procs" => 1
)))

alias.url += (
   "/static" => "/var/www/demoapp/static"
)

url.rewrite-once = (
   "^(/static($|/.*))$" => "$1",
   "^(/.*)$" => "/hello.fcgi$1"
)

要重新加载配置,使用sudo /etc/init.d/lighttpd restart网络服务器

然后我希望我可以访问 raspberrypi.local raspberrypi.local/static下的应用程序,我只是通过 Chrome 获得ERR_EMPTY_RESPONSE

你能发现我的程序有什么问题吗? 我错过了什么?

谢谢你的帮助!

重写后,lighttpd 在内部重新处理请求,因此删除“/static”前缀的重写将不匹配“/static”前缀的别名,因为“/static”前缀在重写后不再存在。

if $HTTP["url] !~ "^/static($|/)" {
    url.rewrite-once = (
       "^/hello.fcgi" => "",
       "^(/.*)$" => "/hello.fcgi$1"
    )
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM