Написание скрипта mod-wsgi на Amazon Linux

Я использую httpd2.4 с mod-wsgi установлен на Amazon Linux.

мой wsgi Сценарий выглядит так:

/projects/mv2/test/test.wsgi

import sys
import os

sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)))

from test import *

/projects/mv2/test/test.py

from flask import Flask
app = Flask(__name__)

@app.route('/test')
def hello_world():
    return 'Hello, World!'

Apache conf файл

<VirtualHost *:80>
    ServerName test-algo.com

    WSGIDaemonProcess algos_app user=mv2 group=mv2 threads=1
    WSGIScriptAlias / /projects/mv2/test/test.wsgi

    <Directory /projects/mv2/test/test>
        WSGIProcessGroup algos_app
        WSGIApplicationGroup %{GLOBAL}
        Options MultiViews FollowSymLinks
        AllowOverride all
        Require all granted

    </Directory>
</VirtualHost>

Когда я нажму на ссылку http://test-algo.com/testЯ получаю ответ 403 и следующее httpd error file

[authz_core:error] [pid 27555] [client 153.156.225.142:65083] AH01630: client denied by server configuration: /projects/mv2/test/test.wgi

Я не могу найти, что не так с wsgi скрипт.

1 ответ

Решение

Directory блог должен начинаться с:

<Directory /projects/mv2/test>

У вас есть дополнительный test в конце пути.

Это вызвало бы ошибку 403.

Скрипт WSGI также должен использовать:

from test import app as application

Ожидается, что имя точки входа WSGI будет application не app как ваш файл Flask использует.

Если не исправить это, вы получите другую ошибку после исправления первой.

Другие вопросы по тегам