django项目上线centos后的nginx后 无法使用get传值,后端接收为空

通过8000端口访问项目本身是没有问题的,post传值也没有问题, 问题就在nginx上, 应该怎么配置nginx 让他能向后端发送get请求

该回答引用GPTᴼᴾᴱᴺᴬᴵ
在配置nginx时,需要注意到GET请求的参数需要通过URL传递,因此需要在nginx的配置中将URL中的参数传递给后端Django应用。下面是一个示例的nginx配置,可以尝试使用类似的配置进行调试:

server {
    listen 80;
    server_name your_domain_name.com;
    
    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # 添加以下配置,将参数传递给后端应用
        proxy_set_header X-Original-URI $request_uri;
        proxy_set_header X-Scheme $scheme;
    }
}


在这个配置中,我们通过proxy_set_header指令将HTTP请求中的参数通过HTTP头部传递给后端Django应用。具体来说,X-Original-URI头部传递的是完整的请求URL,包括参数部分;X-Scheme头部传递的是HTTP或HTTPS协议。这样配置后,应该可以正常向后端发送GET请求并获取参数。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这篇文章:Centos下Django虚拟环境+uwsgi+nginx
  • 除此之外, 这篇博客: centos7部署Django3项目(uwsgi+nginx)中的 二、服务器中安装Nginx 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    这步其实也可以归为第一步,不过因为Nginx是本来就是我们的目标之一,所以就单独分为第二步了。

    1. 安装Nginx
    yum install nginx
    
    1. 找到Nginx程序
    cd /usr/sbin/
    
    1. 检查Nginx是否能够正常运行
    ./nginx -t
    # 显示下面两行则代表可正常运行
    # nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    # nginx: configuration file /etc/nginx/nginx.conf test is successful
    
    1. 运行Nginx
    ./nginx
    
    1. 检查Nginx是否启动成功
      在浏览器输入服务器公网的ip地址,显示有一个欢迎使用Centos的页面为启动成功。

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^