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

主站ASP.NET C#(Azure Windows)与/blog目录WordPress(Linux)同域名部署方案咨询

混合部署方案:主站Azure ASP.NET + 保留Linux上的/blog路径(无域名变更)

这是个非常典型的混合架构迁移场景,既要完成主站技术栈升级,又要保住原有博客积累的SEO价值,完全可以通过路由转发+反向代理实现,下面给你几个实操性强的方案,按推荐度排序:


方案1:Azure Front Door(推荐)—— 云端路由中枢

这是最省心的方案,利用Azure原生的全球路由服务来做路径分流,完全不用修改两边服务器的配置:

  • 把你的域名解析到Azure Front Door的端点
  • 在Front Door里配置两个路由规则:
    • 匹配路径/*,转发到你的Azure ASP.NET应用服务(设置为默认路由)
    • 匹配路径/blog/*,转发到Linux服务器上的WordPress站点(需要确保Linux服务器有公网可访问的地址)
  • 额外优势:Front Door自带CDN缓存、DDoS防护,还能自动处理HTTPS证书,对SEO友好度拉满,用户访问时URL完全不变

方案2:Azure IIS URL Rewrite反向代理

如果不想额外加服务,直接在你的Azure ASP.NET应用服务里配置反向代理:

  1. 先在Azure门户的应用服务「扩展」里安装URL Rewrite模块
  2. 在应用根目录的web.config里添加重写规则,把/blog开头的请求转发到Linux服务器:
<system.webServer>
  <rewrite>
    <rules>
      <rule name="Proxy Blog Requests" stopProcessing="true">
        <match url="^blog/(.*)" />
        <action type="Rewrite" url="https://你的Linux服务器公网地址/blog/{R:1}" />
        <serverVariables>
          <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
          <set name="HTTP_ACCEPT_ENCODING" value="" />
        </serverVariables>
      </rule>
    </rules>
    <outboundRules>
      <rule name="Restore Accept Encoding">
        <match serverVariable="HTTP_ACCEPT_ENCODING" pattern="^$" />
        <action type="Rewrite" value="{HTTP_X_ORIGINAL_ACCEPT_ENCODING}" />
      </rule>
    </outboundRules>
  </rewrite>
</system.webServer>
  1. 记得在Linux服务器的防火墙/Nginx/Apache里,把Azure应用服务的出站IP加入白名单,避免被拦截
  • 注意:要确保WordPress的站点URL设置还是yourdomain.com/blog,不要改成Linux服务器的原始域名

方案3:Linux服务器反向代理(适合原有域名解析在Linux的场景)

如果你的域名原本就指向Linux服务器,不想改解析,可以反过来让Linux服务器承担路由角色:
以Nginx为例,修改nginx.conf的server块:

server {
    listen 443 ssl;
    server_name yourdomain.com;
    # 这里配置你的SSL证书

    # 保留/blog路径到本地WordPress
    location /blog {
        root /var/www/wordpress;
        index index.php;
        try_files $uri $uri/ /blog/index.php?$args;
        # 下面是原有WordPress的PHP-FPM配置,保留即可
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # 所有其他路径转发到Azure ASP.NET站点
    location / {
        proxy_pass https://你的Azure应用服务域名;
        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;
    }
}
  • 这个方案的缺点是主站请求要先经过Linux服务器再到Azure,会增加一点延迟,但胜在不用动域名解析

SEO保护关键注意事项

  • 绝对不要设置301/302跳转,必须保持yourdomain.com/blog/xxx的URL完全不变
  • 检查WordPress的设置→常规里,「站点地址(URL)」和「WordPress地址(URL)」都要设为https://yourdomain.com/blog
  • 用Google Search Console重新验证站点,监控抓取状态,确保没有404或5xx错误
  • 确保所有/blog页面的Canonical标签依然指向原URL,不要出现子域名或其他地址

内容的提问来源于stack exchange,提问作者Guo Hong Lim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:30:50