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异常抛出的是02时才认为是异常
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
posted on 2018-05-27 19:58  Py行僧  阅读(123)  评论(0编辑  收藏  举报