python - 在 ubuntu/apache2 : virtual host configuration 上部署 flask 应用程序

标签 python apache ubuntu flask

我正在尝试按照 link 中的说明在 ubuntu (14.04) 上的 apache2 安装上部署 python/flask 应用程序。

该应用程序似乎可以工作,如果我将浏览器指向 http://mywebsite.com/我正确地看到了 Flask 应用程序返回的消息。

我的问题是,如果我想在同一台机器上安装第二个站点作为不同的虚拟主机(比如非 python 应用程序)怎么办?
我想要的是虚拟主机映射到像 http://mywebsite.com/FlaskApp 这样的 URL。 ,同时可以在 http://mywebsite.com/MyOtherWebApp 定义另一个虚拟主机

根据上述文章的说明,这是 FlaskApp.conf 文件:

<VirtualHost *:80>
            ServerName mywebsite.com
            ServerAdmin admin@mywebsite.com
            WSGIScriptAlias / /var/www/FlaskApp/flaskapp.wsgi
            <Directory /var/www/FlaskApp/FlaskApp/>
                    Order allow,deny
                    Allow from all
            </Directory>
            Alias /static /var/www/FlaskApp/FlaskApp/static
            <Directory /var/www/FlaskApp/FlaskApp/static/>
                    Order allow,deny
                    Allow from all
            </Directory>
            ErrorLog ${APACHE_LOG_DIR}/error.log
            LogLevel warn
            CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

这就是 /var/www安装 python 应用程序后,文件夹是结构化的
/var/www
    +-- FlaskApp
    ¦   +-- FlaskApp
    ¦   ¦   +-- flaskenv
    ¦   ¦   +-- __init__.py
    ¦   ¦   +-- __init__.pyc
    ¦   ¦   +-- static
    ¦   ¦   +-- templates
    ¦   +-- flaskapp.wsgi
    ¦
    +-- MyOtherWebApp
        +-- ...

一些更详细的注释:
  • 我无法为不同的 VirtualHost
  • 使用不同的域名或不同的端口
  • 我找到了this线程建议使用指令 ServerAlias如下图来解决类似的问题,但如果我这样做并转到 http://mywebsite.com/我看到的是 FlaskApp 文件夹的目录列表,而不是 flask 服务调用的结果,如下面的屏幕截图所示:

  • 这里改变了 FlaskApp.conf:
    <VirtualHost *:80>
        ServerName mywebsite.com/FlaskApp
        ServerAlias mywebsite.com/FlaskApp
        .
        .
        .
    

    截屏:

    enter image description here

    最佳答案

    我认为您错过了 Controller 中的该网址。也许您可以在 FlaskApp 文件夹中添加一个 index.html 以重定向到正确的 url(或者相反,如果您离开 ServerName mywebsite.com/FlaskApp,则放置一个索引文件以重定向到 FlaskApp)。
    如果 index.html “hack” 不适合您的需要,您可以添加另一个虚拟服务器以从/重定向到/FlaskApp/

    关于python - 在 ubuntu/apache2 : virtual host configuration 上部署 flask 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38572059/

    相关文章:

    python - 原始 CR2 图像旋转并保存未压缩以访问像素 RGB

    python - 如何读取一个非常大的文本文件的最后 MB

    python - 如何通过名称动态调用对象上的函数?

    JavaScript 不在外部域上执行

    linux - RTNETLINK 在 mininet 上回答 : Invalid argument, MPLS

    python - 查找两点之间字符串的最佳方法

    php - UTF-8贯穿始终

    apache - 如何使用apache设置静态资源缓存?

    c++ - 在 Debug模式下运行的 CGI 程序

    ubuntu - 无需以 root 身份登录即可复制文件