我正在尝试按照 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
+-- ...
一些更详细的注释:
ServerAlias
如下图来解决类似的问题,但如果我这样做并转到 http://mywebsite.com/
我看到的是 FlaskApp 文件夹的目录列表,而不是 flask 服务调用的结果,如下面的屏幕截图所示:这里改变了 FlaskApp.conf:
<VirtualHost *:80>
ServerName mywebsite.com/FlaskApp
ServerAlias mywebsite.com/FlaskApp
.
.
.
截屏:
最佳答案
我认为您错过了 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/