如何将Heroku Flask站点嵌入WordPress别名路径且不跳转?
实现
my-wp-web.xyz/flask-app 无跳转访问Heroku Flask站点的方案 方案1:Direct Admin 配置服务器级反向代理(推荐,性能最优)
Direct Admin支持Apache或Nginx的反向代理配置,这是最稳定且性能最好的方式:
Apache 配置:
登录Direct Admin,找到my-wp-web.xyz的站点管理,编辑.htaccess文件或站点的Apache配置,添加以下规则:<Location "/flask-app"> ProxyPass "https://simple-flask-app.herokuapp.com/" ProxyPassReverse "https://simple-flask-app.herokuapp.com/" </Location>确保服务器已启用
mod_proxy和mod_proxy_http模块(Direct Admin默认已开启,若未开可在后台模块管理中启用),配置后重启Apache服务。Nginx 配置:
在Direct Admin中找到站点的Nginx配置文件,添加以下规则:location /flask-app { proxy_pass https://simple-flask-app.herokuapp.com/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }保存后重启Nginx服务即可生效。
方案2:WordPress 反向代理插件(快速测试,无需改服务器配置)
如果不想操作服务器配置,可以用WordPress插件实现反向代理:
- 安装并激活如
WP Reverse Proxy或Reverse Proxy Manager这类插件; - 在插件设置中添加代理规则:
- 源路径:
/flask-app - 目标URL:
https://simple-flask-app.herokuapp.com/
- 源路径:
- 注意:这类插件依赖服务器允许URL转发,性能略低于服务器级代理,适合临时测试或非高流量场景。
方案3:Flask 应用适配子路径(避免资源加载错误)
由于Heroku站点默认使用根路径,通过/flask-app访问时,Flask生成的静态文件、路由链接可能指向根路径导致404,需在Flask中做适配:
- 设置应用根路径:
from flask import Flask app = Flask(__name__) app.config['APPLICATION_ROOT'] = '/flask-app' - 启用代理头部处理,确保Flask正确识别请求来源:
部署修改后的Flask应用到Heroku即可。from werkzeug.middleware.proxy_fix import ProxyFix app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1, x_proto=1, x_host=1)
内容的提问来源于stack exchange,提问作者ZARIR
相关产品推荐
相关产品推荐

