五步教你实现使用Nginx+uWSGI+Django方法部署Django程序

新建一个XML文件:

djangochina_socket.xml,将它放在/data/www/org_management目录下:

Nginx采用8077端口与uWSGI通讯,请确保此端口没有被其它程序采用

<uwsgi>
    <socket>:8077</socket>  
    <chdir>/data/www/org_management</chdir>
    <module>org_management.wsgi</module>
    <processes>4</processes> <!-- 进程数 --> 
    <daemonize>uwsgi.log</daemonize>
</uwsgi>

 

我们假设你将会把Nginx程序日志放到你的目录/data/www/org_management下,请确保该目录存在。

我们假设你的Django的static目录是/data/www/org_management/static/ , media目录是/data/www/org_management/media/,请确保这些目录存在。

我们假设你的域名是 www.you.com (在调试时你可以设置成你的机器IP或者直接注释掉)

我们假设你的域名端口是 80(在调试时你可以设置一些特殊端口如 8070)

基于上面的假设,我们为/etc/nginx/conf.d 添加以下配置 org_nginx.conf  确保org_nginx.conf 在nginx的安装目录,否则会找不到

 

复制代码
server {
        listen   80;   #服务器开放端口号
        server_name yl.youname.com;   #域名如果没有可以注释
        access_log /data/www/org_management/logs/access.log;      
       #logs文夹必须有
        error_log /data/www/org_management/logs/error.log;
        #logs文件夹必须有

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        #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/xadmin/ {
            alias  /data/www/org_management/extra_apps/xadmin/static/xadmin/;
        }
 
       #静态文件夹
        location /static/ {
            alias  /data/www/org_management/static/;
        }
        #上传文件目录
        location /media/ {
            alias  /data/www/org_management/media/;
        }
        #建议放最后否则会出现找不到静态文件情况
        location / {
         include        uwsgi_params;
         uwsgi_pass     127.0.0.1:8077;  #和uwsgi通讯保持一致
        }
    }
复制代码

 

在上面的设置后,可以让Nginx来处理静态文件(/static/ 和 /media/ )。非静态文件请求Nginx会发给 socket 8077,然后让uWSGI来进行处理。

 

Nginx+uWSGI+Django的实现方式

在完成上面配置后,需要按以下步骤来做:

  1. 重启Nginx服务器,以使Nginx的配置生效。

  2.  

    nginx -s  reload

     

    重启后检查Nginx日志是否有异常。

  3. 启动uWSGI服务器

    /data/www/org_management
    
    uwsgi -x djangochina_socket.xml

     

    检查日志 uwsgi.log 是否有异常发现。

  4. 访问服务

    基于上面的假设你的域名是www.you.com

    因此,我们访问 www.you.com,如果发现程序与 单独使用Django启动的程序一模一样时,就说明成功啦!

  5. 关闭服务的方法  killall uwsgi  关闭所有uwsgi  在开启进程中可以设定一个uwsgi为主进程,杀死主进程即可        将uWSGi进程杀死即可。

一些建议

  1. uWSG配置文件的进程数,可以根据实际情况分配。不要开得太大,否则机器可能会内存耗用太高。一般来说,对于一个小社区来说,4个进程已经足够了。

  2. 一般情况下,可以编写一下 stop.sh 脚本 来关闭uWSGI。

 

 

 

 

 

 

posted on   星河赵  阅读(1765)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示