项目部署

linux安装python3

下载python3包,解压并进入目录

安装依赖

  • - yum install openssl-devel # pip依赖
  • - yum install sqlite-devel # sqliet依赖

编译安装py3

  • - ./configure
  • - make
  • - make install

项目主要配置

DEBUG配置改为False

ALLOWED_HOSTS = [] 允许主机IP端口

uwsgi配置项目

安装uwsgi : pip3 install uwsgi

直接启动 : 

1
2
uwsgi  - - http :端口号  - - chdir 项目目录  - - wsgi - file  wsig文件
# uwsgi --http :9003 --chdir /data/s8day145/ --wsgi-file s8day145/wsgi.py

配置文件启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[uwsgi]
http  =  0.0 . 0.0 : 9005  # IP,端口
chdir  =  / data / oldboy /  # 项目目录
wsgi - file  =  oldboy / wsgi.py  # wsgi.py 文件
processes  =  4  # 进程数,根据核心数配置
static - map  =  / static = / data / oldboy / allstatic  # 静态文件目录
 
启动
uwsgi  - - ini s8day145_uwsgi.ini  # 配置文件
 
Django收集静态文件
配置
     DEBUG  =  False
     STATIC_ROOT  =  "allstatic"
命令
python3 manage.py collectstatic  # 将所有的静态文件备份在在配置的STATIC_ROOT

Nginx+uwsgi

nginx作用:

  • - 处理静态文件
  • - 反向代理
  • - 负载均衡(LVS、haproxy)

uwsig作用:

  • - 处理动态请求

Nginx配置

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
user root;
worker_processes  4 # 开启进程数
 
error_log  / var / log / nginx / error.log;  # 错误日志
pid  / var / run / nginx.pid;  # 不用管
 
events {
     worker_connections   1024 # 单个进程允许最大外部链接
}
 
 
http {
     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   / var / log / nginx / access.log  main;
 
     sendfile            on;
     tcp_nopush          on;
     tcp_nodelay         on;
     keepalive_timeout    65 ;
 
     include              / etc / nginx / mime.types;
     default_type        application / octet - stream;
 
     upstream django {  # 相当于一个名叫django的池
         server  127.0 . 0.1 : 8001 # 指定ip端口
         server  127.0 . 0.1 : 8002 ;
     }
     server {
         listen       80 # 监听80端口
 
         charset     utf - 8 ;
 
         # max upload size
         client_max_body_size  75M ;
 
         location  / static {  # location路由的匹配
             alias   / data / s8day145 / allstatic;
                         # 当客户端请求 /request_path/image/cat.png 的时候,
                         # Nginx把请求映射为/local_path/image/cat.png
         }
 
         location  /  {
             uwsgi_pass  django;  # 指定池或指定IP端口
             include     uwsgi_params;
         }
     }
}

  池中IP端口就是uwsgi启动的IP端口

保持服务启动

安装supervisor : yum安装即可

配置中添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/ etc / supervisord.conf
[program:s8day145]  # 起个名
command = / usr / local / bin / uwsgi  - - ini  / data / s8day145 / s8day145_uwsgi_8001.ini ;命令
priority = 999                 ; 优先级(越小越优先)
autostart = true              ; supervisord启动时,该程序也启动
autorestart = true            ; 异常退出时,自动启动
startsecs = 10                 ; 启动后持续 10s 后未发生异常,才表示启动成功
startretries = 3               ; 异常后,自动重启次数
exitcodes = 0 , 2                ; exit异常抛出的是 0 2 时才认为是异常
stopsignal = QUIT             ; 杀进程的信号
stopwaitsecs = 10              ; 向进程发出stopsignal后等待OS向supervisord返回SIGCHILD 的时间。若超时则supervisord将
使用SIGKILL杀进程
user = root                 ; 设置启动该程序的用户
log_stdout = true             ; 如果为 True ,则记录程序日志
log_stderr = false            ; 如果为 True ,则记录程序错误日志
logfile = / var / log / cat.log    ; 程序日志路径
logfile_maxbytes = 1MB         ; 日志文件最大大小
logfile_backups = 10           ; 日志文件最大数量

启动软件

1
systemctl start supervisord.service

转载于:https://www.cnblogs.com/weiwu1578/articles/9097167.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值