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
|