我正在用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配置,但是我不确定如何解决这个问题。有什么想法吗?