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

Docker化Flask应用子域名部署:与主域名WordPress共存的可行性及方法

方案可行性与实现步骤

一、方案完全可行

主域名和子域名属于独立的域名解析指向,完全可以分别部署不同应用,互不干扰,同时也能通过主站导航链接等方式实现二者的关联。

二、具体实现步骤

1. 域名解析配置

  • 登录域名服务商后台,添加两条解析记录:
    • 主域名mydomain.com:指向运行WordPress服务器的公网IP(支持A记录或CNAME记录,按需选择)
    • 子域名app.mydomain.com:指向运行Flask Docker应用的服务器IP(可与WordPress同服务器,也可分开部署)

2. 服务器反向代理配置(以Nginx为例,同服务器场景)

如果两个应用部署在同一台服务器,用Nginx做反向代理区分不同域名的请求:

  • 安装Nginx:
    sudo apt install nginx # Debian/Ubuntu系统
    # 或
    sudo yum install nginx # CentOS/RHEL系统
    
  • 新建WordPress站点配置文件(比如/etc/nginx/sites-available/mydomain.com):
    server {
        listen 80;
        server_name mydomain.com www.mydomain.com;
    
        root /var/www/wordpress;
        index index.php index.html index.htm;
    
        location / {
            try_files $uri $uri/ /index.php?$args;
        }
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 根据实际PHP版本调整
        }
    }
    
  • 新建Flask应用站点配置文件(比如/etc/nginx/sites-available/app.mydomain.com):
    server {
        listen 80;
        server_name app.mydomain.com;
    
        location / {
            proxy_pass http://localhost:5000; # 对应Flask容器映射的主机端口
            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:
    sudo ln -s /etc/nginx/sites-available/mydomain.com /etc/nginx/sites-enabled/
    sudo ln -s /etc/nginx/sites-available/app.mydomain.com /etc/nginx/sites-enabled/
    sudo nginx -t # 校验配置合法性
    sudo systemctl restart nginx
    

3. Flask容器运行配置

确保Flask容器正确映射端口到主机,示例运行命令:

docker run -d -p 5000:5000 --name flask-app your-flask-image:latest

这里将容器内的5000端口映射到主机5000端口,与Nginx配置中的proxy_pass地址对应。

4. HTTPS配置(可选但强烈推荐)

用Certbot给两个域名申请免费SSL证书,自动配置HTTPS:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d mydomain.com -d www.mydomain.com -d app.mydomain.com

执行后Certbot会自动修改Nginx配置,将HTTP请求重定向到HTTPS。

5. 应用关联方式

  • 最直接的方式:在WordPress主站的导航菜单中添加指向app.mydomain.com的链接(比如“进入应用”按钮),让用户能快速从主站跳转至Flask应用
  • 进阶身份同步:如果需要实现用户在两个系统中免登录跳转,可以考虑用OAuth2协议,或者共享Redis会话数据的方式,具体根据业务需求选择

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 12:52:46