伏波路上学安全 2017-12-12 09:27 采纳率: 0%
浏览 1289
已结题

ubuntu django+nginx+uwsgi报错

错误日志
2017/12/12 17:20:01 [crit] 2457#2457: *138 connect() to unix:/home/dz/COps/ServerRun/uwsgi.sock failed (13: Permission denied) while connecting to upstream, client: 172.16.116.252, server: 172.16.1.235, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:/home/dz/COps/ServerRun/uwsgi.sock:", host: "172.16.1.235", referrer: "http://172.16.1.235/"

  • 写回答

2条回答

  • qq_36935413 2017-12-12 10:00
    关注

    首先来介绍一下这三者之间的关系:

    django是一个python web应用框架。采用了MVC的软件设计模式,即模型M,视图V和控制器C.

    uwsgi是一个web服务器,它支持WSGI协议和uWSGI协议,通过协议规定的统一的接口,可以让web服务器和框架之间解耦,只需要支持相应的协议即可.

    nginx ("engine x") 是一个高性能的HTTP和反向代理服务器.通过使用nginx可以将静态资源请求交由nginx来处理,动态请求再转发给应用.大大提高了效率.

    1.django,django自带简单的web服务器,不过一般只用来做调试使用,不够稳定而且只支持单一进程.

    2.django+uwsgi,通过使用uwsgi可以起多个进程来响应服务.

    3.django+uwsgi+nginx,常用组合,效率较高.

    1.django

    (1)django安装
    sudo apt-get install python-django

    (2)新建工程
    django-admin.py startproject test_project

    (3)新建应用
    cd test_project/ && django-admin.py startapp test_app

    (4)运行
    python manage.py runserver 127.0.0.1:8080

    打开网页能看到django的提示界面就说明启动成功了

    2.uwsgi

    (1)安装
    sudo pip install uwsgi
    (2)运行

    uwsgi --http :8000 --chdir /home/yixiang/Practice/Python/nginx_django/test_project --module test_project.wsgi
    打开127.0.0.1:8000能看到之前django的欢迎界面表示uwsgi运行成功.
    (3)配置
    用命令行的方式启动参数较为复杂,我们一般用配置文件的方式,uwsgi支持多种配置文件格式,xml,ini等,我们这次使用xml作为例子.新建mytest_scoket.xml 目录.写入以下配置.


    127.0.0.1:8099
    /home/yixiang/Practice/Python/nginx_django/test_project
    test_project.wsgi
    1
    uwsgi.log

    执行:uwsgi -x mytest_scoket.xml

    3.nginx

    (1)下载
    sudo apt-get install nginx
    (2)增加配置
    新建一个配置文件test_project_nginx.conf,写入如下配置:

    server {

        listen   8000;
        server_name 127.0.0.1;
        access_log /home/yixiang/Practice/Python/nginx_django/test_project/access.log;
        error_log /home/yixiang/Practice/Python/nginx_django/test_project/error.log;
    
        #charset koi8-r;
    
        #access_log  logs/host.access.log  main;
    
        location / { 
         include        uwsgi_params;
         uwsgi_pass     127.0.0.1:8099;
        }
    
        #error_page  404              /404.html;
    
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    
        location /static/ {
            alias /home/yixiang/Practice/Python/nginx_django/test_project/static/;
            index  index.html index.htm;
        }
    
        location /media/ {
            alias  /home/yixiang/Practice/Python/nginx_django/test_project/media/;
        }
    } 
    

    然后将配置文件软连接到nginx的配置文件目录下:

    cd /etc/nginx/sites-enabled/ && sudo ln -s /home/yixiang/Practice/Python/nginx_django/test_project/test_project_nginx.conf ./
    (3)重新加载配置

    sudo /etc/init.d/nginx reload
    此时访问127.0.0.1:8000就能看到django的欢迎界面了.

    抄袭太多,如果解决了您的问题请点击右上角的采纳按钮,谢谢您的合作

    评论

报告相同问题?

悬赏问题

  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型