并且nginx不用root帐户哟。
1,编译安装nginx及uwsgi及django,不表述
2,将nginx文件夹更改为普通用户拥有。但执行文件nginx仍为root,运行如下命令加入特殊权限标志位,并将nginx.conf的user设置普通用户及组(空格隔开):
<a href="http://www.cnblogs.com/aguncn/p/4972605.html#">?</a>
1
<code>chmod</code> <code>u+x nginx</code>
3,在nginx里配置uwsgi的proxy
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<code>upstream p_host {</code>
<code> </code><code>server 127.0.0.1:9090;</code>
<code>}</code>
<code>server {</code>
<code> </code><code>listen 80;</code>
<code> </code><code>server_name localhost;</code>
<code> </code>
<code> </code><code>location / { </code>
<code> </code><code>include uwsgi_params;</code>
<code> </code><code>uwsgi_pass prism_host;</code>
<code> </code><code>uwsgi_param uwsgi_script p.wsgi; </code><code>//</code><code>这里定义wsgi.py文件</code>
<code> </code><code>uwsgi_param uwsgi_chdir</code><code>/p/p</code><code>; </code><code>//</code><code>这里定义django的manager目录</code>
<code> </code><code>index index.html index.htm;</code>
<code> </code><code>client_max_body_size 35m;</code>
<code> </code><code>}</code>
<code> </code><code>location ^~</code><code>/static</code> <code>{</code>
<code> </code><code>root</code><code>/p/p</code><code>; </code><code>//</code><code>定义静态资源文件位置</code>
<code> </code><code>}</code>
4,配置uwsgi9090.ini文件(保证相关文件夹存在且有权限,为什么要多不同的端口呢,因为这样可以在一个服务器上配置多个端口,多个django应用)
<code>[uwsgi]</code>
<code>socket = 127.0.0.1:9090</code>
<code>master =</code><code>true</code>
<code>vhost =</code><code>true</code>
<code>no-stie =</code><code>true</code>
<code>workers = 4</code>
<code>reload-mercy = 10</code>
<code>vacuum =</code><code>true</code>
<code>max-requests = 1000</code>
<code>limit-as = 512</code>
<code>buffer-sizi = 30000</code>
<code>pidfile =</code><code>/usr/local/nginx/run/uwsgi9090</code><code>.pid </code>
<code>daemonize =</code><code>/uwsgi9090</code><code>.log</code>
5,生成执行脚本uwsgi9090文件(保证相关文件夹存在且有权限,这个本来可以放到service的init.d目录下,但为了不污染管理员用户,自己先用普通用户)
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
<code>#! /bin/sh</code>
<code># chkconfig: 2345 55 25</code>
<code># description: startup script for uwsgi webserver on debian. place in /etc/init.d and</code>
<code># run 'update-rc.d -f uwsgi defaults', or use the appropriate command on your</code>
<code># distro. for centos/redhat run: 'chkconfig --add uwsgi'</code>
<code> </code>
<code>### begin init info</code>
<code># provides: uwsgi</code>
<code># required-start: $all</code>
<code># required-stop: $all</code>
<code># default-start: 2 3 4 5</code>
<code># default-stop: 0 1 6</code>
<code># short-description: starts the uwsgi web server</code>
<code># description: starts uwsgi using start-stop-daemon</code>
<code>### end init info</code>
<code># author: licess</code>
<code>path=</code><code>/usr/local/sbin</code><code>:</code><code>/usr/local/bin</code><code>:</code><code>/sbin</code><code>:</code><code>/bin</code><code>:</code><code>/usr/sbin</code><code>:</code><code>/usr/bin</code>
<code>desc=</code><code>"uwsgi daemon"</code>
<code>name=uwsgi9090</code>
<code>daemon=</code><code>/usr/local/bin/uwsgi</code>
<code>configfile=</code><code>/usr/local/nginx/conf/conf</code><code>.d/$name.ini </code><code>//</code><code>定义位置</code>
<code>pidfile=</code><code>/usr/local/nginx/run/</code><code>$name.pid </code><code>//</code><code>定义位置</code>
<code>scriptname=</code><code>/usr/local/nginx/sbin/</code><code>$name </code><code>//</code><code>定义位置</code>
<code>set</code> <code>-e</code>
<code>[ -x</code><code>"$daemon"</code> <code>] ||</code><code>exit</code> <code>0</code>
<code>do_start() {</code>
<code> </code><code>$daemon $configfile ||</code><code>echo</code> <code>-n</code><code>"uwsgi already running"</code>
<code>do_stop() {</code>
<code> </code><code>$daemon --stop $pidfile ||</code><code>echo</code> <code>-n</code><code>"uwsgi not running"</code>
<code> </code><code>rm</code> <code>-f $pidfile</code>
<code> </code><code>echo</code> <code>"$daemon stoped."</code>
<code>do_reload() {</code>
<code> </code><code>$daemon --reload $pidfile ||</code><code>echo</code> <code>-n</code><code>"uwsgi can't reload"</code>
<code>do_status() {</code>
<code> </code><code>ps</code> <code>aux|</code><code>grep</code> <code>$daemon</code>
<code>case</code> <code>"$1"</code> <code>in</code>
<code> </code><code>status)</code>
<code> </code><code>echo</code> <code>-en</code><code>"status $name: \n"</code>
<code> </code><code>do_status</code>
<code> </code><code>;;</code>
<code> </code><code>start)</code>
<code> </code><code>echo</code> <code>-en</code><code>"starting $name: \n"</code>
<code> </code><code>do_start</code>
<code> </code><code>stop)</code>
<code> </code><code>echo</code> <code>-en</code><code>"stopping $name: \n"</code>
<code> </code><code>do_stop</code>
<code> </code><code>reload|graceful)</code>
<code> </code><code>echo</code> <code>-en</code><code>"reloading $name: \n"</code>
<code> </code><code>do_reload</code>
<code> </code><code>*)</code>
<code> </code><code>echo</code> <code>"usage: $scriptname {start|stop|reload}"</code> <code>>&2</code>
<code> </code><code>exit</code> <code>3</code>
<code>esac</code>
<code>exit</code> <code>0</code>
<code>uwsgi9090</code>
6,日常更新重启(可能需要建立软链接),停止操作。
<code>/usr/local/nginx/sbin/nginx</code>
<code>/usr/local/nginx/sbin/nginx</code> <code>-s reload</code>
<code>/usr/local/nginx/sbin/nginx</code> <code>-s stop</code>
<code>sh</code><code>/usr/local/nginx/sbin/uwsgi9090</code> <code>start</code>
<code>sh</code><code>/usr/local/nginx/sbin/uwsgi9090</code> <code>stop</code>
<code>sh</code><code>/usr/local/nginx/sbin/uwsgi9090</code> <code>reload</code>