在ubuntu / apache2上部署flask应用程序:虚拟主机配置

时间:2016-07-25 15:39:46

标签: 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>

以下是安装python应用程序后/var/www文件夹的结构

/var/www
    +-- FlaskApp
    ¦   +-- FlaskApp
    ¦   ¦   +-- flaskenv
    ¦   ¦   +-- __init__.py
    ¦   ¦   +-- __init__.pyc
    ¦   ¦   +-- static
    ¦   ¦   +-- templates
    ¦   +-- flaskapp.wsgi
    ¦
    +-- MyOtherWebApp
        +-- ...

更多细节的一些注释:

  1. 我无法为不同的VirtualHost
  2. 使用不同的域名或不同的端口
  3. 我发现this线程建议使用如下所示的指令ServerAlias来解决类似的问题,但如果我这样做并转到http://mywebsite.com/,我会看到一个目录列表FlaskApp文件夹而不是烧瓶服务调用的结果,如下面的屏幕截图所示:
  4. 这里改变了FlaskApp.conf:

    <VirtualHost *:80>
        ServerName mywebsite.com/FlaskApp
        ServerAlias mywebsite.com/FlaskApp
        .
        .
        .
    

    截图:

    enter image description here

1 个答案:

答案 0 :(得分:1)

我想你错过了控制器中的网址。也许您可以在FlaskApp文件夹中添加index.html以重定向到正确的URL(或者反过来,如果您离开ServerName mywebsite.com/FlaskApp,则将索引文件重定向到FlaskApp)。 如果index.html&#34; hack&#34;并不适合您的需求,您可以添加另一个虚拟服务器以从/向/ FlaskApp /

重定向