mod_wsg 由 apache 提供 flask 和静态文件
mod_wsg with flask and static files served by apache
我正在尝试使用用于 API 的烧瓶应用程序设置 apache 服务器。
我希望访问 mydomain.com 的用户从 apache 获得 index.html 服务,如果向 mydomain 发出请求。com/api flask 应该服务 json.
我可以得到 index.html 就好了,但是当我访问我的域时。com/api 我得到 404 未找到。
这是我的 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
我对这一切还很陌生,所以我猜我遗漏了一些明显的东西。
删除:
Alias / /var/www/incubator-web/html/
添加:
DocumentRoot /var/www/incubator-web/html/
将 Alias
设置为 /
会隐藏 WSGI 应用程序,因为 Alias
优先于 WSGIScriptAlias
。 DocumentRoot
是指定默认文档目录的正确方法。
我正在尝试使用用于 API 的烧瓶应用程序设置 apache 服务器。 我希望访问 mydomain.com 的用户从 apache 获得 index.html 服务,如果向 mydomain 发出请求。com/api flask 应该服务 json.
我可以得到 index.html 就好了,但是当我访问我的域时。com/api 我得到 404 未找到。
这是我的 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
我对这一切还很陌生,所以我猜我遗漏了一些明显的东西。
删除:
Alias / /var/www/incubator-web/html/
添加:
DocumentRoot /var/www/incubator-web/html/
将 Alias
设置为 /
会隐藏 WSGI 应用程序,因为 Alias
优先于 WSGIScriptAlias
。 DocumentRoot
是指定默认文档目录的正确方法。