满口金牙 2022-11-29 16:33 采纳率: 91.1%
浏览 47
已结题

django项目,配值nginx 和 awsgi ,POST 不起作用,请教!

弄好了,发现是 ip地址写错了一个数字而已,唉
<python manage.py runserver 项目可以正常启动>
nginx 监听两个端口 80和9000:

# nginx 监听80端口
server {
    listen 80;
    listen [::]:80;
    server_name localhost;
    charset  utf-8;
    location / {
        root /home/index/general_office/dist;
        index index.html index.htm;
        autoindex_localtime on;
    }
    error_page 404 /40x.html;
    location = /40x.html {
        root /home/index/error_page/html;
    }
}

浏览器测试: http://11.111.111.11/ 正常进入主页

# nginx 监听9000端口  (接收前端 axios请求的端口)
server {
    listen 9000;
    server_name 11.111.111.11;
    charset utf-8;
    client_max_body_size 5M; 
    location / {
        uwsgi_pass 127.0.0.1:9001; # 转发给 uwsgi  和  django
        include /etc/nginx/uwsgi_params;
    }
}

浏览器测试: http://11.111.111.11:9000/ 正常进入 django 项目的主页,说明 nginx 对 9000端口转发 uwsgi 正常

# uwsgi 监听 127.0.0.1:9001  接收nigex的转发,并回转
[uwsgi]
socket=127.0.0.1:9001
chdir=/home/backend/general_server
wsgi-file=%(chdir)/general_server/wsgi.py
buffer-size=65535
process=6
threads=2
pidfile=uwsgi.pid
daemonize=uwsgi.log
mastar=True

问题描述:
这里我点主页登录, 怎么样都没用处,
nginx 中的 access.log 文件没有 post 日志
uwsgin.log里也没有日志
感觉post 不起作用,请教解决方法

img

#nginx 和 uwsgi 放在同一容器,生成代码如下
docker run -it --name django-nginx1.0 --hostname django-nginx1.0 --restart always --network host
 -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf:ro 
 -v /home/static:/home/static
 -v /home/code/index:/home/index 
 -v /home/code/backend:/home/backend   
 -v /home/nginx/conf.d:/etc/nginx/conf.d  --privileged=true
 django-nginx:1.0  /bin/bash   # django-nginx:1.0 自制镜像名
  • 写回答

3条回答 默认 最新

  • 游一游走一走 2022-11-29 16:58
    关注

    跨域了,不能这么干

    1. 如果你一定要这么干就参考这边文章,关键字是django 开启跨域
      解决django跨域问题_wuyepiaoxue789的博客-CSDN博客_django 跨域
    2. 正确的做法,django提供的接口都加上api,在80端口把path=/api的请求转发到django
      server {
       listen 80;
       listen [::]:80;
       server_name localhost;
       charset  utf-8;
       location / {
           root /home/index/general_office/dist;
           index index.html index.htm;
           autoindex_localtime on;
       }
       location /api {
           uwsgi_pass 127.0.0.1:9001; # 转发给 uwsgi  和  django
           include /etc/nginx/uwsgi_params;
       }
       error_page 404 /40x.html;
       location = /40x.html {
           root /home/index/error_page/html;
       }
      }
      
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月7日
  • 已采纳回答 11月29日
  • 修改了问题 11月29日
  • 修改了问题 11月29日
  • 展开全部

悬赏问题

  • ¥15 Attributeerror:super object has no attribute '__sklearn_tags__'_'
  • ¥15 逆置单链表输出不完整
  • ¥15 宇视vms-B200-A16@R启动不了,如下图所示,在软件工具搜不到,如何解决?(操作系统-linux)
  • ¥500 寻找一名电子工程师完成pcb主板设计(拒绝AI生成式答案)
  • ¥15 关于#mysql#的问题:UNION ALL(相关搜索:sql语句)
  • ¥15 matlab二位可视化能否针对不同数值范围分开分级?
  • ¥15 已经创建了模拟器但是不能用来运行app 怎么办😭自己搞两天了
  • ¥15 关于#极限编程#的问题,请各位专家解答!
  • ¥20 win11账户锁定时间设为0无法登录
  • ¥45 C#学生成绩管理系统