Запустите Flask и Apache2 на одном и том же порту, чтобы избежать CORS - PullRequest
0 голосов
/ 22 марта 2019

Я использую сервер Debian 9 с Apache2 и Flask.Flask работает на порту 5000, а Apache2 работает на порту 80.

Интерфейс Я выполняю вызовы AJAX, но получаю CORS, так как браузер блокирует запрос (по соображениям безопасности).Я не хочу включать CORS на сервере, так как знаю, что это создает угрозу безопасности.

Насколько я знаю, чтобы иметь возможность "запустить" флешку на порту 80, мне нужно направить все запросы напорт 80 и используйте apache для перенаправления трафика на Flask.

И, насколько мне известно, для этого мне нужно использовать mod_wsgi.

У меня также есть конечная точка API: v1 / checkemail

Таким образом, запрос будет mysite.com:5000/v1/checkemail?=123@mysite.com

Здесь возникает проблема.

Вот какмои настройки:

веб-сервер получает файлы из /var/www/mysite.com/html Файл API Python Flask находится в / DEV / API с именем API.py

Я также мой файл wsgiнаходится в / DEV / с именем API.wsgi

Содержимое API.wsgi:

#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/DEV/")
from API import app
app.root_path = '/DEV/'

И содержимое /etc/apache2/sites-available/mysite.com.conf:

<VirtualHost *:80>
    ServerName mysite.com
    ServerAdmin Test@mysite.com
    WSGIScriptAlias /v1/verify /DEV/API.wsgi
    <Directory /DEV/API/>
        Order allow,deny
        Allow from all
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Теперь, запустив API.py, я не получаю ошибку CORS, поскольку она не позволяет мне сделать вызов API, и я получаю 404 по запросу, когда пытаюсь сделать запрос: mysite.com/v1/checkemail?=123@mysite.com

Думаю, я испортил конфигурацию VirtualHost, но я не уверен, как решить эту проблему.Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...