以下为例
http {
     ...
     server {
         ...
         location /api {
             # 检查请求方法是否为 PUT 或 DELETE
             if ($request_method = PUT) {
                 # 将请求方法设置为 POST
                 rewrite ^(.*)$ $uri?_method=PUT break;
             }
            if ($request_method = DELETE) {
                 # 将请求方法设置为 POST
                 rewrite ^(.*)$ $uri?_method=DELETE break;
             }
            # 将请求代理到后端服务器
             proxy_pass http://your_backend_server;
         }
     }
 }
  
使用 if 指令检查请求方法是否为 PUT 或 DELETE。如果是,我们使用 rewrite 指令将请求重写为相同的 URI,但不改变请求方法。然后,我们使用 proxy_pass 指令将请求转发到后端服务器,并设置一些代理相关的 HTTP 头。
location /api {
     if ($request_method = PUT) {
         rewrite ^(.*)$ $uri last;
     }
    if ($request_method = DELETE) {
         rewrite ^(.*)$ $uri last;
     }
    proxy_pass http://your_backend_server;
     proxy_set_header Host $host;
     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;
 }
  
或者
server {
     ...
     set $method $request_method;
     if ($http_X_HTTP_Method_Override ~* 'PUT|DELETE') {
         set $method $http_X_HTTP_Method_Override;
     }
     proxy_method $method;
     ...
 }