s21*_*1jb 5 python flask uwsgi synology
我注意到 Synology 的本机网站使用 uwsgi 框架,最近添加了对 python 脚本的支持。我想知道是否有人可以帮我找出一个简单的 hello world 示例。我不清楚 uwsgi 文件中应放入什么内容。我按照 uwsgi 文档页面上的 python-flask 快速入门示例进行操作: uwsgi python-flask 快速入门
在 webstaion>service Portal 上:我设置了一个虚拟主机,其中 nginx 监听端口 8080:

然后,在此配置文件中,我设置了包含 python 脚本、可调用入口函数和 uwsgi 文件的相应文件夹:

该文件夹中的“main.py”Python 脚本是快速入门页面中的示例:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "<span style='color:red'>I am app 1</span>"
Run Code Online (Sandbox Code Playgroud)
我采用了该示例中的命令行参数并制作了 uwsgi.ini 文件并将其放置在同一文件夹中:
[uwsgi]
socket = 127.0.0.1:8080
wsgi-file = main.py
callable = app
processes = 4
threads = 2
stats = 127.0.0.1:9191
Run Code Online (Sandbox Code Playgroud)
在 webstation 的 script>python 页面中:我设置了一个“python-flask 配置文件”并添加了所需的 Flask 模块:

我在虚拟主机的 python 配置文件中添加了这个“python-flask 配置文件”,以确保 python 脚本可以访问所有模块。
但是,当我浏览到端口 8080 时,我的浏览器上收到错误代码 500;
Internal Server Error
Run Code Online (Sandbox Code Playgroud)
如果有人可以在网站上尝试一下以找出正确的设置,我将不胜感激。看来 webstation 使部署基于 python 的网络应用程序变得相当容易,因此解决这个问题将极大地有利于像我这样正在 Synology NAS 上寻找快速简便的部署方法的新手。
提前致谢!
我没有完整的答案,但我能够让它发挥作用。这是我的设置。
我在网络浏览器上可以看到的内容。使用和不使用 VPN 进行测试(模拟在本地网络之外)。适用于 HTTP 和 HTTPS。

我在main.py的Python代码(与 OP 相同)是:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "<span style='color:green'>I am app 1</span>"
if __name__ == '__main__':
app.run()
Run Code Online (Sandbox Code Playgroud)
一些限制:
对于 Flask,我必须从 0.0.0.0 开始,以确保可以从 LAN/WAN 访问该应用程序。如果在 127.0.0.1 或 localhost 上启动,则只有计算机本身可以访问该应用程序。这对你来说可能是第一个提示?我设法使我的应用程序运行并可从网络访问,但我仍然必须手动启动它(ssh > 命令行),因此每次我关闭 Synology 用户会话时它都会关闭。在这方面你似乎远远领先于我。
| 归档时间: |
|
| 查看次数: |
8244 次 |
| 最近记录: |