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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
| prepare
-------
1. pip+django ::
[iyunv@tvm001 ~]# yum install python-pip
[iyunv@tvm001 ~]# pip install django
django 项目用到了 pytz
[iyunv@tvm001 ~]# pip install pytz
2. 调整 project setting ::
[iyunv@tvm001 ~]# cd /opt
直接克隆这个项目
[iyunv@tvm001 opt]# git clone https://github.com/opera443399/charade.git
[iyunv@tvm001 opt]# cd charade/www/
6. 试着运行一下 ::
django默认是启用了 DEBUG 选项,但 charade 这个项目的代码已经关闭 DEBUG 选项,并设置了 ALLOWED_HOSTS 和 STATIC_ROOT :
[iyunv@tvm001 www]# vim www/settings.py
DEBUG = False
ALLOWED_HOSTS = ['*']
STATIC_ROOT = os.path.join(BASE_DIR,'static')
现在,先临时调整配置:
[iyunv@tvm001 www]# vim www/settings.py
DEBUG = True
运行服务:
[iyunv@tvm001 www]# python manage.py runserver 0.0.0.0:80
在浏览器访问,测试确认后台的数据读写无异常后,停止运行,后续将使用uwsgi来管理。
7. admin后台 ::
[iyunv@tvm001 www]# python manage.py createsuperuser
根据提示创建root密码用于登录后台。
访问地址:http://you_server_ip/admin/
8. debug ::
DEBUG 选项处于关闭状态时,则 django 不处理静态文件,此时应该配置nginx或apache来处理静态文件。
uwsgi+supervisord+nginx
----------------------
1. 安装 ::
[iyunv@tvm001 www]# yum install nginx python-devel
[iyunv@tvm001 www]# yum groupinstall "development tools"
[iyunv@tvm001 www]# pip install supervisor
[iyunv@tvm001 www]# whereis supervisord
supervisord: /usr/bin/supervisord /etc/supervisord.conf
[iyunv@tvm001 www]# pip install uwsgi
[iyunv@tvm001 www]# whereis uwsgi
uwsgi: /usr/bin/uwsgi
2. 配置 ::
1) 收集django项目的static文件:
[iyunv@tvm001 www]# python manage.py collectstatic
2) 使用supervisor来管理uwsgi服务,用uwsgi来运行django:
[iyunv@tvm001 www]# # echo_supervisord_conf > /etc/supervisord.conf \
&& mkdir /etc/supervisor.d \
&& echo -e '[include]\nfiles=/etc/supervisor.d/*.ini' >>/etc/supervisord.conf \
&& grep ^[^\;] /etc/supervisord.conf
[iyunv@tvm001 www]# whereis supervisord
4) 启动 supervisord 服务:
[iyunv@tvm001 www]# /usr/bin/supervisord -c /etc/supervisord.conf
[iyunv@tvm001 www]# echo '/usr/bin/supervisord -c /etc/supervisord.conf' >>/etc/rc.local
5) 配置uwsgi服务:
[iyunv@tvm001 www]# cat /etc/supervisor.d/uwsgi.ini
[program:uwsgi]
command=/usr/bin/uwsgi --socket 127.0.0.1:8090 --chdir /opt/charade/www --module www.wsgi
6)启动 uwsgi 服务:
[iyunv@tvm001 www]# supervisorctl reload
Restarted supervisord
[iyunv@tvm001 www]# supervisorctl status
uwsgi RUNNING pid 5303, uptime 0:00:04
说明:
uwsgi 使用 --socket 方式,表示:通过socket来访问,因此后续可以用 nginx uwsgi 模块来访问。
uwsgi 使用 --http 方式,表示:可以直接通过 http访问,因此后续可以用 nginx proxy 来访问。
7) 使用nginx来处理静态文件和转发请求到后端的uwsgi服务
a)nginx uwsgi
[iyunv@tvm001 www]# cat /etc/nginx/conf.d/www.conf
server {
listen 80 default;
server_name www.test.com;
charset utf-8;
location /static {
alias /opt/charade/www/static;
}
location / {
uwsgi_pass 127.0.0.1:8090;
include uwsgi_params;
}
}
b)nginx proxy
[iyunv@tvm001 www]# cat /etc/nginx/conf.d/www.conf
upstream backend {
server 127.0.0.1:8090;
}
server {
listen 80 default;
server_name www.test.com;
charset utf-8;
location /static {
alias /opt/charade/www/static;
}
location / {
proxy_pass http://backend;
}
}
(centos7)
[iyunv@tvm001 www]# systemctl start nginx.service
[iyunv@tvm001 www]# systemctl enable nginx.service
|