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

如何在Nginx中替换HTTPS请求域名(login.windows.net转login.microsoftonline.com)

解决Nginx替换HTTPS请求域名的问题

问题根源

你的Nginx配置里的server块没有指定server_name login.windows.net;,当你请求https://login.windows.net/...时,Nginx不会将该请求分配到这个server块处理(默认default_server不匹配目标域名),导致你的rewrite和proxy规则完全未生效。

方案1:301/302重定向(客户端跳转)

这种方式会让客户端收到重定向响应,直接访问新域名,适合需要让用户看到地址变化的场景。

修改后的完整server配置:

server {
    listen 443 ssl http2;
    # 必须指定该域名,匹配请求的login.windows.net
    server_name login.windows.net;

    ssl_certificate /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;

    access_log /var/log/nginx/reverse-access.log;
    error_log /var/log/nginx/reverse-error.log;

    # 匹配所有路径,替换域名后跳转
    location / {
        rewrite ^(.*)$ https://login.microsoftonline.com$1 permanent; # permanent为301永久重定向,用redirect则是302临时重定向
    }
}

# 同步处理HTTP请求,强制跳转至HTTPS
server {
    listen 80;
    server_name login.windows.net;
    return 301 https://$server_name$request_uri;
}

方案2:反向代理(客户端无感知)

如果不想让客户端看到域名变化,可使用反向代理:Nginx转发请求到新域名,再将结果返回给客户端。

配置如下:

server {
    listen 443 ssl http2;
    server_name login.windows.net;

    ssl_certificate /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;

    access_log /var/log/nginx/reverse-access.log;
    error_log /var/log/nginx/reverse-error.log;

    location / {
        # 转发请求到目标域名
        proxy_pass https://login.microsoftonline.com;
        # 传递必要的请求头
        proxy_set_header Host login.microsoftonline.com;
        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;
    }
}

# HTTP转HTTPS
server {
    listen 80;
    server_name login.windows.net;
    return 301 https://$server_name$request_uri;
}

配置验证与重启

  1. 先检查配置合法性:
sudo nginx -t
  1. 配置无误后重启Nginx:
sudo systemctl restart nginx

测试方法

  • 重定向方案测试:
curl -v https://login.windows.net/fe3f3811-3e28-4a4e-a122-3e1135c01bf2/v2.0/.well-known/openid-configuration

可看到301响应,Location字段指向login.microsoftonline.com的对应地址。

  • 代理方案测试:
curl -v https://login.windows.net/fe3f3811-3e28-4a4e-a122-3e1135c01bf2/v2.0/.well-known/openid-configuration

客户端地址仍为login.windows.net,但返回内容实际来自login.microsoftonline.com。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 21:40:22