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 |