在运维产品经常遇到切换域名的需求,比如 A域名跳转到B域名
但是之前有很多其它业务依赖A域名,所以一般会配置一个301或者302跳转,但是这个跳转只对GET请求有用,POST请求会丢失body切变成GET请求。
所以针对有POST调用的场景,nginx可以过渡一段事件,然后找到POST使用方慢慢迁移。
同时支持POST和GET的请求。
server {
server_name a.domain.cn;
location / {
proxy_set_header Host b.domain.cn;
if ($request_method = POST) {
proxy_pass https://b.domain.cn;
}
if ($request_method != POST) {
return 302 https://b.domain.cn$request_uri;
}
}
}