0


nginx将前端的put、delete请求转换成post请求

以下为例

http {
...
server {
...
location /api {
# 检查请求方法是否为 PUT 或 DELETE
if ($request_method = PUT) {
# 将请求方法设置为 POST
rewrite ^(.*)$ $uri?_method=PUT break;
}

  1. if ($request_method = DELETE) {
  2. # 将请求方法设置为 POST
  3. rewrite ^(.*)$ $uri?_method=DELETE break;
  4. }
  5. # 将请求代理到后端服务器
  6. proxy_pass http://your_backend_server;
  7. }
  8. }

}

使用 if 指令检查请求方法是否为 PUT 或 DELETE。如果是,我们使用 rewrite 指令将请求重写为相同的 URI,但不改变请求方法。然后,我们使用 proxy_pass 指令将请求转发到后端服务器,并设置一些代理相关的 HTTP 头。

location /api {
if ($request_method = PUT) {
rewrite ^(.*)$ $uri last;
}

  1. if ($request_method = DELETE) {
  2. rewrite ^(.*)$ $uri last;
  3. }
  4. proxy_pass http://your_backend_server;
  5. proxy_set_header Host $host;
  6. proxy_set_header X-Real-IP $remote_addr;
  7. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  8. proxy_set_header X-Forwarded-Proto $scheme;

}

或者

server {
...
set $method $request_method;
if ($http_X_HTTP_Method_Override ~* 'PUT|DELETE') {
set $method $http_X_HTTP_Method_Override;
}
proxy_method $method;
...
}

标签: nginx 前端 运维

本文转载自: https://blog.csdn.net/terrymyway/article/details/140814644
版权归原作者 农药王者 所有, 如有侵权,请联系我们删除。

“nginx将前端的put、delete请求转换成post请求”的评论:

还没有评论