Ubuntu下Django+uWSGI+nginx部署

本文采用uwsgi+nginx来部署django

这种方式是将nginx作为服务端前端,将接受web所有的请求,统一管理,Nginx把所有的静态请求自己处理,然后把所有非静态请求通过uwsgi传递给Django,由Django来处理,从而完成一次web请求。

uwsgi

pip3 install uwsgi
测试:uwsgi --http :8080 --module mall.wsgi

http : 协议类型和端口号

processes : 开启的进程数量

workers : 开启的进程数量,等同于processes(官网的说法是spawn the specified number ofworkers / processes)

chdir : 指定运行目录(chdir to specified directory before apps loading)

wsgi-file : 载入wsgi-file(load .wsgi file)

stats : 在指定的地址上,开启状态服务(enable the stats server on the specified address)

threads : 运行线程。由于GIL的存在,我觉得这个真心没啥用。(run each worker in prethreaded mode with the specified number of threads)

master : 允许主进程存在(enable master process)

daemonize : 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器(daemonize uWSGI)。实际上最常用的,还是把运行记录输出到一个本地文件上。

pidfile : 指定pid文件的位置,记录主进程的pid号。

vacuum : 当服务器退出的时候自动清理环境,删除unix socket文件和pid文件(try to remove all of the generated file/sockets)

四.Nginx+uwsgi+Django

Params uwsgi_params
Nginx配置文件 nginx.conf
uwsgi配置文件 uwsgi.ini

配置uwsgi

新建uwsgi.ini文件

[uwsgi]
socket = :8000 # 端口号
master = true # 允许主进程存在
processes = 4
workers = 5 # 进程个数
enable-threads = true
post-buffering = 4096
chdir = /root/masami/luntan # 项目所在路径
home = /root/masami/env # 项目的虚拟环境
module = luntan.wsgi:application
vacuum = true
socket = /root/masami/uwsgi.sock # uwsgi.sock文件存放目录

运行

uwsgi --ini uwsgi.ini

Nginx

Nginx安装

sudo apt-get install nginx

基本命令

/etc/init.d/nginx start # 启动
/etc/init.d/nginx stop # 关闭
/etc/init.d/nginx restart # 重启

网站的日志文件

mkdir /var/log/nginx/masami/ # 新建文件夹来存放网站的日志文件

配置文件

进入 /etc/nginx/sites-availabel下
在这个文件夹下新建不同站点的配置文件
修改default文件的端口

touch masami # 新建masami文件,作为本项目的配置文件

server {
    listen      80;
    server_name localhost;
    charset     utf-8;
 
    client_max_body_size 75M;

    # 这块存让日志文件
    access_log  /var/log/nginx/masami/Masami_access.log;
    error_log   /var/log/nginx/masami/Masami_error.log;
 
    location /media  {
        alias /root/masami/luntan/media;
    }
 
    location /static {
        alias /root/masami/luntan/static;
    }
 
    location / {
        uwsgi_pass 127.0.0.1:8000;
        include     /etc/nginx/uwsgi_params;
    }
}

检查nginx语法是否错误 nginx -t

出现静态资源403的错误

修改/etc/nginx/nginx.conf 文件
将第一行改为user root;
重启nginx

supervidor

安装

supervidor 仅支持python2

配置文件

echo_supervisord_conf > /etc/supervisord/supervisord.conf

转载于:https://www.cnblogs.com/niuu/p/10099100.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu是一个自由开源的操作系统,其中有很多的工具和服务可以用于搭建与开发Web应用。其中,常用的Web应用栈是使用Nginx作为Web服务器,UWSGI作为应用程序服务器,Django作为Web框架,MySQL作为关系型数据库。 要安装和配置这些服务,需要进行以下步骤: 1. 安装Ubuntu操作系统,可以选择最新版本的Ubuntu LTS或者最新的Ubuntu发行版。 2. 安装Nginx服务,并配置Nginx服务器来处理并转发HTTP请求。这里可以使用apt-get install命令来安装Nginx包。 3. 安装UWSGI服务,并配置UWSGI服务器来处理Django应用程序。这里可以使用pip install命令来安装UWSGI包。 4. 安装Django,并编写一个基本的Django应用程序。然后配置UWSGI服务器以运行Django应用程序。可以使用pip install命令来安装Django包。可以使用此教程 - https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html 5. 安装MySQL数据库服务,并配置MySQL服务器以使用Django应用程序。可以使用apt-get install命令来安装MySQL包。 6. 在Django应用程序中配置MySQL数据库连接参数,并创建 MySQL数据库及表。 7. 配置Nginx服务器以使用UWSGI服务器来处理Django应用程序。可以使用上面的教程来完成这一步骤。 8. 启动NginxUWSGI服务器,并测试Django应用程序是否可以访问。 在进行以上的步骤时,需要注意安全措施,防止 Web 应用程序被攻击和入侵。同时,也需要进行充分的测试,保证 Web 应用程序的稳定性和可用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值