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

在IIS中部署Django实现HTTPS及多站点域名跳转问题

解决方案步骤

1. 替换Django开发服务器,部署为正式WSGI服务(解决HTTPS不支持问题)

开发服务器python manage.py runserver仅支持HTTP,必须通过WSGI部署才能在IIS环境下支持HTTPS,Windows平台推荐使用wfastcgi:

  • 安装wfastcgi:pip install wfastcgi
  • 启用wfastcgi:执行wfastcgi-enable,控制台会返回类似C:\PythonXX\python.exe|C:\PythonXX\Lib\site-packages\wfastcgi.py的映射路径,保存该路径备用
  • 在Django项目根目录创建web.config文件,替换以下占位符后使用:
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <system.webServer>
        <handlers>
          <add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="你的wfastcgi映射路径" resourceType="Unspecified" requireAccess="Script" />
        </handlers>
        <rewrite>
          <rules>
            <rule name="Django Rewrite" stopProcessing="true">
              <match url="^(.*)$" ignoreCase="false" />
              <conditions>
                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
              </conditions>
              <action type="Rewrite" url="wsgi.py/{R:1}" />
            </rule>
          </rules>
        </rewrite>
      </system.webServer>
      <appSettings>
        <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
        <add key="PYTHONPATH" value="你的Django项目根目录绝对路径" />
        <add key="DJANGO_SETTINGS_MODULE" value="你的项目.settings" />
      </appSettings>
    </configuration>
    

2. 配置IIS后端站点绑定

打开IIS管理器,找到后端站点完成以下绑定:

  • 绑定80端口:主机头填写pr.abcapi.com,IP选择服务器公网IP或*
  • 绑定443端口:主机头填写pr.abcapi.com,选择对应的SSL证书(若已有通配符证书可直接复用,无对应证书则需申请pr.abcapi.com域名证书)
  • 确保前端站点绑定为pr.app.com的80/443端口,实现两站点通过主机头共用IP和端口

3. 配置DNS解析

登录域名管理后台,添加A记录:将pr.abcapi.com指向服务器公网IP,可通过nslookup pr.abcapi.com命令验证解析是否生效

4. 调整前端API请求地址

将前端原有请求地址http://pr.app.com:8000/APIService/..../修改为https://pr.abcapi.com/APIService/..../,确保请求通过HTTPS访问后端站点

5. 验证与跨域处理

  • 直接访问https://pr.abcapi.com/APIService/测试后端接口是否正常返回
  • 若前端出现跨域错误,需在Django中配置CORS:安装django-cors-headers,在项目settings.py中添加中间件并配置允许的域名:
    INSTALLED_APPS = [
        # 其他应用
        'corsheaders',
    ]
    
    MIDDLEWARE = [
        'corsheaders.middleware.CorsMiddleware',
        # 其他中间件
    ]
    
    CORS_ALLOWED_ORIGINS = ["https://pr.app.com"]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 03:00:59