Django + uwsgi + nginx进行项目部署

1. 安装及启动

将django程序编写完成,
在settings.py中将DEBUG = False, ALLOWED_HOSTS = ['*'],
Python manage.py runserver 测试是否能启动,实际不需要runserver来启动项目

2. uwsgi安装

安装:pip insatll uwsgi
配置:在django项目下创建script目录,进入script目录,创建一个uwsgi.ini文件
   【配置如下示例】
    # uwsig使用配置文件启动
    [uwsgi]
    # 项目目录
    chdir=/root/websve_master/Django_Web_Server/
    # 指定项目的application
    module=Django_Web_Server.wsgi:application
    # 指定sock的文件路径       
    #socket=/root/websve_master/Django_Web_Server/uwsgi_conf/uwsgi.sock
    # 配置nginx时打开,此端口要和nginx绑定一致
    socket = :8000
    # 进程个数
    processes = 8
    # 每个进程worker数       
    workers=5
    # uwsgi的进程名称前缀
    procname-prefix-spaced=Django_Web_Server
    # py文件修改,自动加载
    py-autoreload=1
    # 每个进程worker数
    pidfile=/root/websve_master/Django_Web_Server/uwsgi_conf/uwsgi.pid
    # 指定IP端口,web访问入口,不配置nginx时打开       
    #http=0.0.0.0:8000
    # 指定静态文件(有nginx配置则在nginx中配置静态文件目录)
    # static-map=/static=/root/websve_master/Django_Web_Server/static
    # 启动uwsgi的用户名和用户组
    uid=root
    gid=root
    # 启用主进程
    master=true
    # 自动移除unix Socket和pid文件当服务停止的时候
    vacuum=true
    # 序列化接受的内容,如果可能的话
    thunder-lock=true
    # 启用线程
    enable-threads=true
    # 设置请求超时中断时间
    harakiri=30
    # 设置缓冲
    post-buffering=4096
    # 设置日志目录
    daemonize=/root/websve_master/Django_Web_Server/uwsgi_conf/uwsgi.log
    #monitor uwsgi status  通过该端口可以监控 uwsgi 的负载情况
    stats = 127.0.0.1:9001

3. nginx安装

1. 执行命令:wget http://nginx.org/download/nginx-1.14.0.tar.gz
2. 执行命令解压:tar zxvf nginx-1.14.0.tar.gz
3. 编译安装:
    cd nginx-1.14.0
    ./configure --prefix=/usr/local/nginx
    make && make install
4. 建立软连接:
    ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
5. 在/user/local/nginx/conf/中打开nginx.conf,加入以下内容:
    user  root;  # 修改用户为root
    worker_processes  1;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;

    #pid        logs/nginx.pid;
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        upstream django {
            server 120.25.169.87:8000;
            server 39.108.209.183:9090;
        }
    
        server {
            listen       80;
            server_name  120.25.169.87;
    
            #charset koi8-r;
            charset utf-8;
    
            #access_log  logs/host.access.log  main;
    
            location /static {
                alias /root/websve_master/Django_Web_Server/static;
            }
            location /media {
                alias /root/websve_master/Django_Web_Server/media;
            }
    
            location / {
                uwsgi_pass   django;  # 此端口要和uwsgi一致
                include /usr/local/nginx/conf/uwsgi_params;
            }
    
            #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;
            }
    
            ...
        }
        ...
    }

5. nginx基本命令

启动:nginx (终端没有任何提示就证明nginx启动成功)
停止:nginx -s stop
重启:nginx -s reload

4. 项目启动:

启动uwsgi: uwsgi --ini uwsgi.ini
启动nginx: nginx
安装nginx前访问url: 39.108.187.33:8000/test
安装nginx后访问url:39.108.187.33/test
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

i码充电桩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值