环境
- 有一个域名:
blog.dayday.com, 但是没有配置 DNS - 有一个 nginx 服务器, ip 为:
10.45.119.120, 然后再 nginx 上配置了对blog.dayday.com的转发规则: /v1/~
那么有什么方法可以请求该 nginx 地址, 命中 nginx 的转发规则呢
解决方案
curl -X POST https://10.45.119.120/v1/login -H "Host: blog.dayday.com" --insecure
-H "Host: blog.dayday.com": 强制请求头中 Host 字段为我们想要的域名--insecure: 跳过证书校验(如果是 IP 访问且证书不匹配)
这样请求就会走到 IP 地址, 但服务器或者 nginx 会看到请求头中的 Host 是 blog.dayday.com, 从而走到正确的路由
夹带点其他干货
如果想要发送 POST 同时又只看响应头, 可以使用 -D -:
curl -X POST https://10.45.119.120/v1/login -H "Host: blog.dayday.com" --insecure -D -
-D -: 会把响应头输出到标准输出, 随后响应体仍然打印
请求携带 cookie
curl -X POST https://10.45.119.120/v1/login -H "Host: blog.dayday.com" -b "token=xxx" --insecure -D -