在同一端口上运行Flask和Apache2以避免CORS

时间:2019-03-22 00:49:53

标签: python apache flask

我正在用Apache2和Flask运行Debian 9服务器。 Flask在端口5000上运行,而Apache2在端口80上运行。

前端我正在进行AJAX调用,但是由于浏览器阻止该请求而导致CORS(出于安全原因)。我不想在服务器上启用CORS,因为我知道这会带来安全风险。

据我所知,要能够在端口80上“运行” flask,我必须将所有请求定向到端口80,并使用apache将流量重定向到Flask。

据我所知,我必须使用mod_wsgi来实现。

我也有一个API端点:v1 / checkemail

所以请求将是mysite.com:5000/v1/checkemail?=123@mysite.com

问题出在这里。

这是我的设置方式

网络服务器从/var/www/mysite.com/html获取文件 Python Flask API文件位于/ 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配置,但是我不确定如何解决这个问题。有什么想法吗?

0 个答案:

没有答案
相关问题