0
API用のフラスコアプリケーションを使用してApacheサーバーをセットアップしようとしています。 mydomain.comにアクセスしているユーザーがapacheからindex.htmlを取得し、mydomain.com/apiフラスコへのリクエストがjsonに対応する必要がある場合。フラスコとスタティックファイルがmod_wsgで提供されています。
私はindex.htmlを入手できますが、mydomain.com/apiにアクセスすると404が見つかりません。
これは私のapache設定です。
<VirtualHost *:80>
ServerName temp.mydomain.com
ServerAlias mydomain.com
ServerAdmin [email protected]
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
私はそう、私は私が欠けていることを推測しているすべてこれにはかなり新しいです何か明白です。
私は 'WSGIScriptAlias/api /'を 'WSGIScriptAlias/api'に変更しなければならないと思います。あなたの修正プログラムを適用した後、私は多くのリダイレクトについて私のブラウザでエラーメッセージが表示されましたが、私は設定を変更しました(スラッシュを削除しました)Apacheを再起動し、ページをリロードして動作しました。 – evading
ええ、私はほとんどそれについて何か言った。末尾にスラッシュが付いているかどうかは、使用されているPython Webフレームワークによって異なります。いくつかは必ずしもそれをうまく処理しない。 Flaskのように見えるのは、サブURLのマウントポイントに末尾にスラッシュを付けることができない場所です。 –