Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Nginx从客户端服务器接收post请求,然后将请求和客户端ip传递到后端特定的url_Django_Nginx - Fatal编程技术网

Django Nginx从客户端服务器接收post请求,然后将请求和客户端ip传递到后端特定的url

Django Nginx从客户端服务器接收post请求,然后将请求和客户端ip传递到后端特定的url,django,nginx,Django,Nginx,我从客户端服务器接收post请求,其中包含一些post数据,然后在传递到运行nginx的服务器后保存到数据库中,我不知道如何配置nginx以接收这些请求,并使用特定的url将它们转发到应用程序后端,我将能够在数据库中保存它们。我希望nginx提供客户端ip地址和发布的请求 谢谢,我还在学习如何正确使用Nginx 这就是我曾经尝试过但没有成功的事情 server{ listen 80; server_name my_server_ip; error_log /var/log/n

我从客户端服务器接收post请求,其中包含一些post数据,然后在传递到运行nginx的服务器后保存到数据库中,我不知道如何配置nginx以接收这些请求,并使用特定的url将它们转发到应用程序后端,我将能够在数据库中保存它们。我希望nginx提供客户端ip地址和发布的请求

谢谢,我还在学习如何正确使用Nginx

这就是我曾经尝试过但没有成功的事情

server{
  listen 80;
    server_name my_server_ip;
    error_log /var/log/nginx/error.log;
    # proxy_pass_header Server;

   location / {

           proxy_pass http://127.0.0.1:8000;
           proxy_set_header X-Forwarded-Host  $server_name;
           proxy_set_header X-Real-IP         $remote_addr;

         }

       location /user/user_request/{
           if ($request_method != 'POST'){
             return 405;
          }

          return 200;
          proxy_set_header X-Forwarded-For $remote_addr;
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          keepalive_requests 10;
          keepalive_timeout 75s;
          proxy_pass http://my_server_ip$request_uri;
    }


}

移除
返回200行,因为这将返回函数,并且函数下面的行不会被执行。您不需要从此部分返回200,因为这也将由转发请求的应用程序处理。

删除
返回200行,因为这将返回函数,并且函数下面的行不会被执行。您不需要从此部分返回200,因为这也将由您转发请求的应用程序处理。

也许可以尝试?类似于此的
代理\u passhttp://my_server_ip/$request_uriproxy\u passhttp://my_server_ip/$request_urireturn 200
,并且我已经将
proxy\u pass
修改为
proxy\u passhttp://my_server_ip/user/user_request/
,现在nginx错误日志显示worker_连接不够,从上游读取响应头时失败。如果客户端服务器没有响应200 OK头,则不会将post请求发送到我的服务器。这就是为什么return 200首先尝试了,客户端服务器回复502错误网关我已经删除了
return 200
,并且我已经将
proxy\u pass
修改为
proxy\u passhttp://my_server_ip/user/user_request/
,现在nginx错误日志显示worker\u连接不够,从上游读取响应头时失败。