You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

域控网络中Apache部署Flask API的问题排查与配置咨询

问题与解决方案:Apache部署Flask项目数据交互失败及自定义域名配置

我学习Apache、JavaScript、CSS、Flask及MOD_WSGI不足一周,开发了一个输入批次号从Oracle数据库取数据展示的项目,已用纯Python实现,现在要通过Web服务器共享给团队。本地(公司笔记本和台式机)用Flask API+MOD_WSGI能正常实现网页与Oracle的数据交互,但部署到Apache2.4后,客户端能访问页面却拿不到数据,控制台提示ERR_CONNECTION REFUSED。咨询以下问题及对应解决方案:


1. 是否因服务器PC启用了管理员管控的防火墙?有何解决办法?

  • 大概率是防火墙拦截导致。按以下步骤排查解决:
    • 先在服务器本地测试API连通性:用curl http://localhost:<API端口>/<接口路径>或浏览器访问本地API,若本地能正常获取数据,客户端不行,则可确定是防火墙拦截端口。
    • 联系管理员,申请将Apache服务端口(默认80/443)及Flask API对应端口(若为独立服务)加入防火墙白名单,允许团队所在网段的IP访问。
    • 若有权限调整服务器防火墙(如Windows防火墙),可手动添加入站规则,放行对应端口的TCP连接。

2. 是否存在配置错误?

重点检查以下几个核心配置环节:

Apache http.conf配置检查

  • 确认MOD_WSGI模块已正确加载:LoadModule wsgi_module modules/mod_wsgi.so(路径需匹配实际安装位置)
  • 确认VirtualHost配置规范,示例:
    <VirtualHost *:80>
        ServerName 192.168.0.100
        WSGIScriptAlias / /path/to/your/app.wsgi
        <Directory /path/to/your/project>
            Require all granted
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/your_app_error.log
        CustomLog ${APACHE_LOG_DIR}/your_app_access.log combined
    </VirtualHost>
    
  • 查看Apache错误日志(默认路径:Linux为/var/log/apache2/,Windows为Apache24/logs),排查是否存在Oracle连接失败、WSGI初始化报错(如权限不足、Oracle依赖缺失)等信息。

.wsgi文件检查

确认文件正确导入Flask应用,示例:

import sys
sys.path.insert(0, '/path/to/your/project')
from your_flask_app import app as application

Flask API及前端JavaScript检查

  • 前端JS的API请求地址需用相对路径(如/api/get_data),禁止硬编码http://localhost:5000/api/get_data——硬编码本地地址会导致客户端从自身机器访问localhost,必然触发连接拒绝。
  • 若通过MOD_WSGI部署Flask,无需手动执行app.run();若为独立Flask服务配合Apache反向代理,需将Flask绑定地址设为0.0.0.0,允许服务器所有网卡接收请求。
  • 检查Oracle数据库连接配置:确认服务器已安装Oracle客户端,且ORACLE_HOME、LD_LIBRARY_PATH等环境变量在Apache运行环境中生效(Apache运行用户可能与本地测试用户不同,易导致驱动加载失败)。

3. 如何通过自定义ServerName(如getwbspcdb.com)访问页面?

按以下三步配置:

第一步:配置Apache VirtualHost

修改http.conf或新增vhosts.conf(需在http.conf中添加Include conf/extra/httpd-vhosts.conf导入),添加自定义ServerName:

<VirtualHost *:80>
    ServerName getwbspcdb.com
    WSGIScriptAlias / /path/to/your/app.wsgi
    <Directory /path/to/your/project>
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/getwbspcdb_error.log
    CustomLog ${APACHE_LOG_DIR}/getwbspcdb_access.log combined
</VirtualHost>

第二步:配置客户端hosts文件

因是内部团队使用,无需注册公网域名,只需在所有客户端的hosts文件添加IP映射:

  • Windows:编辑C:\Windows\System32\drivers\etc\hosts
  • Linux/macOS:编辑/etc/hosts
    添加一行:192.168.0.100 getwbspcdb.com

第三步:重启Apache服务

执行命令使配置生效:

  • Linux:sudo systemctl restart apache2
  • Windows:打开Apache服务管理器,点击重启。

内容的提问来源于stack exchange,提问作者Ken eXs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 01:57:26