全网最详细 Django 多项目uwsgi+nginx部署,实现多个项目同时访问,不成功你来打我!

全网最详细 Django 多项目uwsgi+nginx部署,实现多个项目同时访问,不成功你来打我!,第1张

全网最详细 Django 多项目uwsgi+nginx部署,实现多个项目同时访问,不成功你来打我!

默认认为你已经成功部署了一个项目,想要继续部署第二个项目

  1. 进入 Nginx 的配置文件目录 / usr/local/nginx/conf/,然后新建一个目录:mkdir vhost,之后在 vhost 目录里建立两个以. conf 后缀的文件(有几个项目就放几个,文件名任意),里面的内容如下:

    server {
        listen       8798;               # (需要自己改) 这个就是外网访问项目的端口,不能和其他项目一样,自己选择使用哪个端口.需要在防火墙开放端口
        server_name  www.yuming.cn;
        charset utf-8;
        location / {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8997;  #(需要自己改) 端接口自己选择,别冲突就行,而且下面的项目xml文件里的端口要和这个一致,并且这个端口不能和其他项目的一样,可能需要将防火墙开放这个新的端口号
            uwsgi_param UWSGI_script ***.wsgi;    #(需要自己改) ***为项目中wsgi.py所在文件夹名(就是seetings.py所在的文件夹)  如mysite.uwsgi
            uwsgi_param UWSGI_CHDIR /改成/项目/路径/;  #(需要自己改) 项目文件夹的决定路径,即manage.py所在的文件夹   如/data/wwwroot/mysite/
            }
        location /static/ {
            alias /data/wwwroot/mysite/static/;    # (需要自己改) 项目的static文件夹路径
            }
        }
    
  2. /usr/local/nginx/conf / 目录下的原来默认的 nginx.conf 文件,先备份一下,然后把里面的代码删除,修改成如下代码:

    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        include /usr/local/nginx/conf/vhost/*.conf;   #  只需要注意这里的nginx路径和你的是否一样,其他代码不用改
        server {
            listen 80 default_server;
            server_name _;
            return 404;
            }
        }
    
  3. 新建立一个虚拟环境,把新项目上传到到服务器。进入虚拟环境,在新的虚拟环境再装一次 uwsgi,和安装项目所需依赖包

  4. 在第二个项目根路径创建search.xml配置文件,把以下代码复制到文件中(把1,2,3行改成你的)

    
       127.0.0.1:8997
       /data/wwwroot/***/
       ***.wsgi
       4 
       uwsgi.log
    
    
  5. 进入项目目录启动uwsgi

    uwsgi -x search.xml
    
    注意:如果报错先结束uwsgi进程,再重启启动
    killall -9 uwsgi
    
  6. 启动nginx

    cd /usr/local/nginx/sbin  && ./naginx
    
    注意:如果报错,先结束进程再启动
    killall -9 nginx
    

7.启动第二个项目方法

进入第二个项目的虚拟环境,进入项目目录,重复 *** 作一次第5和6步骤,来启动uwsgi和nginx,注意启动uwsgi时配置文件就不是上个项目的search.xml了,是当前项目目录下的你自己创建的xml文件.

nginx可以直接复制代码重启运行,每个项目的nginx是通用的


问题排解

如果输入ps -ef|grep uwsgi命令,显示类似这样
root 22654 22651 0 13:31 ? 00:00:00 uwsgi -x search.xml
root 22686 1 0 13:33 ? 00:00:00 uwsgi mysite.xml
最后有两个配置文件 search.xml mysite.xml存在,那么恭喜你就是成功启动了两个uwsgi,应该就可以两个项目同时访问了如果没有,检查步骤是否出错

可以在项目目录下的uwsgi.log以及nginx目录下的error.log查看错误信息

参考
https://www.django.cn/article/show-4.html#banqian
https://blog.csdn.net/xiaoduu/article/details/107295789

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3988494.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-21
下一篇 2022-10-21

发表评论

登录后才能评论

评论列表(0条)

保存