我有一个Flask应用程序,我正在Windows下设置它,在我的http.conf文件中,我包含了应用程序的conf文件,它位于如下目录中:
C:\prod\apps\my_app\
\my_app
my_app.conf
my_app.py
my_app.wsgi
\my_service
\my_data
\my_python_virtual_env
我可以在Apache中配置它,并在my_app. conf中使用WSGIPythonPath的绝对路径让它正常运行。但是,我不能使用WSGIPythonPath的相对路径让它正常运行。基于上述结构,我假设它应该是这样的:
WSGIPythonPath ../my_app;../my_service;../my_data;../my_python_virtual_env
<Directory "/">
Require all granted
</Directory>
这显然不是apache解释根目录的相对路径的方式.我尝试做的事情是可能的吗?如果不可能,有什么其他的建议吗?如果有一个配置文件可以用于不同的部署环境,那就太好了.
1条答案
按热度按时间xam8gpfp1#
您需要阅读更多关于WSGI和modwsgi如何与Apache一起工作以及最佳实践是什么的内容。
首先,你应该在一个独立的virtualenv中构建你的Flask应用程序。这对于任何基于Python的Web应用程序来说都是最好的实践,无论是Flask,Django,还是其他什么。用pip管理你的包。谷歌一下这两个术语,你会看到很多关于如何做的教程。
然后,您应该将Flask应用配置放在Apache命名的虚拟主机的专用端口上。您需要确保
WSGIDaemonProcess
包含指向Flask站点包的virtualenv特定python-path
变量。您还应该创建一个系统Flask用户和组,以将Flask系统与其他系统隔离。这样会安全得多。
下面列出的是一个示例配置。注意我已经创建了一个特定的
flask-main
用户和flask-main
组,并且我将所有到Flask应用的流量指向端口8789。我希望这能帮助你朝着正确的方向前进。