Django Nginx从客户端服务器接收post请求,然后将请求和客户端ip传递到后端特定的url
我从客户端服务器接收post请求,其中包含一些post数据,然后在传递到运行nginx的服务器后保存到数据库中,我不知道如何配置nginx以接收这些请求,并使用特定的url将它们转发到应用程序后端,我将能够在数据库中保存它们。我希望nginx提供客户端ip地址和发布的请求 谢谢,我还在学习如何正确使用Nginx 这就是我曾经尝试过但没有成功的事情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
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_uri这就是你所说的@xPressure,你可以试试。但是我认为下面的答案已经解决了你的问题。那一个不起作用,也许试试?像这样的proxy\u passhttp://my_server_ip/$request_uri这就是你所说的@xPressure,你可以试试。但我认为下面的答案已经解决了您的问题。该问题不起作用。如果客户端服务器的post请求没有以200 OK的标题响应,则不会发布到我的服务器。这就是为什么return 200首先尝试了,客户端服务器回复502错误网关我已经删除了return 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连接不够,从上游读取响应头时失败。