【问题标题】:mod_wsg with flask and static files served by apachemod_wsg 与 apache 提供的烧瓶和静态文件
【发布时间】:2017-05-07 06:44:12
【问题描述】:

我正在尝试使用用于 API 的烧瓶应用程序设置 apache 服务器。 我希望访问 mydomain.com 的用户从 apache 获得 index.html,如果向 mydomain.com/api 发出请求,flask 应该提供 json。

我可以很好地获取 index.html,但是当我访问 mydomain.com/api 时,我得到 404 not found。

这是我的 apache 配置。

<VirtualHost *:80>
        ServerName temp.mydomain.com
        ServerAlias mydomain.com
        ServerAdmin webmaster@mydomain.com

        WSGIDaemonProcess incubator-web user=incubator-web group=www-data home=/var/www/incubator-web threads=5
        WSGIScriptAlias /api/ /var/www/incubator-web/incubator-web.wsgi
        Alias / /var/www/incubator-web/html/

        <Directory /var/www/incubator-web>
                WSGIProcessGroup incubator-web
                WSGIApplicationGroup %{GLOBAL}
                WSGIScriptReloading On
                Require all granted
        </Directory>
        ErrorLog /var/www/incubator-web/logs/error.log

        <Directory /var/www/incubator-web/html>
                Require all granted
        </Directory>
</VirtualHost>

还有我的烧瓶应用:

from flask import Flask

app = Flask(__name__)

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

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

还有我的 .wsgi 文件:

#!/usr/bin/python
import sys
sys.path.insert(0, '/var/www/incubator-web')
from incubator_web import app as application

我对这一切都很陌生,所以我猜我遗漏了一些明显的东西。

【问题讨论】:

    标签: python apache flask mod-wsgi


    【解决方案1】:

    删除:

    Alias / /var/www/incubator-web/html/
    

    添加:

    DocumentRoot /var/www/incubator-web/html/
    

    Alias 设置为/ 会隐藏WSGI 应用程序,因为Alias 优先于WSGIScriptAliasDocumentRoot是指定默认文档目录的正确方式。

    【讨论】:

    • 我想我还必须将WSGIScriptAlias /api/ 更改为WSGIScriptAlias /api。应用您的修复后,我在浏览器中收到一条关于许多重定向的错误消息,但后来我更改了配置(删除了尾部斜杠)重新启动 apache,重新加载页面并开始工作。
    • 是的,我差点说了些什么。是否会导致带有斜杠的问题取决于所使用的 Python Web 框架。有些不一定能很好地处理它。看起来 Flask 是一个在子 URL 的挂载点上不能有斜杠的地方。
    猜你喜欢
    • 2020-11-14
    • 2017-08-19
    • 2015-03-06
    • 1970-01-01
    • 2019-07-16
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多