0 Comments

Flask部署——apache2部署多个flask应用

发布于:2016-06-02  |   作者:邓飞龙  |   已聚集:人围观

1. 安装
apt-get install libapache2-mod-wsgi
apt-get install apache2

2. 参数修改
(1)在httpd.conf中增加ServerName,阿里云包含内网和外网双ip,自动检测会用内网ip,此处将ServerName设为外网ip。
ServerName 115.28.8.178
(2)在port.conf中,修改NameVirtualHost的值,内容如下,并且应该包含Listen 80行。
NameVirtualHost *:80
Listen 80
(3)配置虚拟主机
在sites-enabled中分别配置虚拟主机,其中应该注意第一行WSGIPythonPath,这行是指定python脚本所在的目录,去掉则会出错。

apache2配置文件

        但是在这个配置文件中,我发现如果我的两个应用分别在不同的目录则无法配置,其主要的原因就是WSGIPythonPath只能指定一次(WSGIPythonPath不能在VirtualHost标签内配置),第二次则会覆盖前一次的配置,导致前一个虚拟主机配置失效。最后在一个国外的论坛上找到了关于不同应用python脚本路径单独配置的方法。在VirtualHost内加入如下内容,用于指定python脚本所在位置:

WSGIDaemonProcess www.dengfeilong.com python-path=/virtualenvpathto/site-packages:index.py

WSGIProcessGroup www.dengfeilong.com
 

 apache2配置

3. wsgi文件
创建一个wsgi文件,并写入:from xxx import app as application (xxx为应用所在的py脚本名称)
 

4.一个配置文件放入多个启动
在一个配置文件中,将多个wsgi文件设置为启动(WSGIScriptAlias),并分别用不同的目录访问。(注意:由apache启动的不同应用之间视图函数名称不能一样,否则都会访问到同一个应用。)

apache2配置多个虚拟空间
 
 
错误处理:Invalid command 'xxxx', perhaps misspelled or defined
 
sudo a2enmod wsgi #是apache2可以使用wsgi
 
 

标签:flask(4)
    输入验证码:
点击我更换验证码