我正在尝试使用 lighttpd 部署我的 flask web 应用程序。我创建了这个hello.fcgi
文件
#!/usr/bin/python
from flup.server.fcgi import WSGIServer
from hello import app
if __name__ == '__main__':
WSGIServer(app).run()
python 文件是hello.py
我在末尾添加了这几行/etc/lighttpd/lighttpd.conf
。我希望它可以从 访问http://localhost:7777
。
$SERVER["socket"] == ":7777" {
fastcgi.server = ("/hello.fcgi" =>
((
"socket" => "/tmp/hello-fcgi.sock",
"bin-path" => "/var/www/html/py/hello.fcgi",
"check-local" => "disable",
"max-procs" => 1
))
)
alias.url = (
"/static/" => "/var/www/html/py/static"
)
url.rewrite-once = (
"^(/static($|/.*))$" => "$1",
"^(/.*)$" => "/hello.fcgi$1"
)
}
我还启用了 FastCGI、别名和重写模块。我的 Web 应用程序的所有文件都位于/var/www/html/py/
文件夹中,包括 hello.py、hello.fcgi 和“static”文件夹。
然后我重新启动了 lighttpd 并尝试访问,http://localhost:7777
但我的浏览器显示“无法访问该站点”。
这里出了什么问题?我该如何修复?
答案1
知道这已经晚了,但是在搜索另一个问题时遇到了这个问题,并认为我会在这里发布修复程序,该修复程序记录在 Lighttpd 的 Python Flask 文档中。
#!/usr/bin/env python3
from flup.server.fcgi import WSGIServer
from hello import app
class ScriptNameStripper(object):
def __init__(self, app):
self.app = app
def __call__(self, environ, start_response):
environ['SCRIPT_NAME'] = ''
return self.app(environ, start_response)
app = ScriptNameStripper(app)
if __name__ == '__main__':
WSGIServer(app).run()