NGINX+UWSGI部署生产的DJANGO代码

简介:

并且NGINX不用ROOT帐户哟。

1,编译安装NGINX及UWSGI及DJANGO,不表述

2,将NGINX文件夹更改为普通用户拥有。但执行文件NGINX仍为ROOT,运行如下命令加入特殊权限标志位,并将NGINX.CONF的USER设置普通用户及组(空格隔开):

?
1
chmod u+x nginx

  

3,在NGINX里配置UWSGI的PROXY

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
upstream p_host {
     server 127.0.0.1:9090;
}
 
server {
         listen       80;
         server_name  localhost;
         
         location / {           
             include  uwsgi_params;
             uwsgi_pass  prism_host;
             uwsgi_param UWSGI_SCRIPT P.wsgi;  // 这里定义wsgi.py文件
             uwsgi_param UWSGI_CHDIR /P/P ;    // 这里定义DJANGO的MANAGER目录
             index  index.html index.htm;
             client_max_body_size 35m;
         }
     location ^~ /static {
                 root /P/P // 定义静态资源文件位置
         }
     }

  

4,配置UWSGI9090.INI文件(保证相关文件夹存在且有权限,为什么要多不同的端口呢,因为这样可以在一个服务器上配置多个端口,多个DJANGO应用)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
[uwsgi]
socket = 127.0.0.1:9090
master = true
vhost = true
no-stie = true
workers = 4
reload-mercy = 10
vacuum = true   
max-requests = 1000
limit-as = 512
buffer-sizi = 30000
pidfile = /usr/local/nginx/run/uwsgi9090 .pid  
daemonize = /uwsgi9090 .log

  

5,生成执行脚本UWSGI9090文件(保证相关文件夹存在且有权限,这个本来可以放到SERVICE的INIT.D目录下,但为了不污染管理员用户,自己先用普通用户)

?
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
#! /bin/sh
# chkconfig: 2345 55 25
# Description: Startup script for uwsgi webserver on Debian. Place in /etc/init.d and
# run 'update-rc.d -f uwsgi defaults', or use the appropriate command on your
# distro. For CentOS/Redhat run: 'chkconfig --add uwsgi'
  
### BEGIN INIT INFO
# Provides:          uwsgi
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the uwsgi web server
# Description:       starts uwsgi using start-stop-daemon
### END INIT INFO
  
# Author:   licess
# website:  http://lnmp.org
  
PATH= /usr/local/sbin : /usr/local/bin : /sbin : /bin : /usr/sbin : /usr/bin
DESC= "uwsgi daemon"
NAME=uwsgi9090
DAEMON= /usr/local/bin/uwsgi
CONFIGFILE= /usr/local/nginx/conf/conf .d/$NAME.ini  // 定义位置
PIDFILE= /usr/local/nginx/run/ $NAME.pid  // 定义位置
SCRIPTNAME= /usr/local/nginx/sbin/ $NAME  // 定义位置
  
set -e
[ -x "$DAEMON" ] || exit 0
  
do_start() {
     $DAEMON $CONFIGFILE || echo -n "uwsgi already running"
}
  
do_stop() {
     $DAEMON --stop $PIDFILE || echo -n "uwsgi not running"
     rm -f $PIDFILE
     echo "$DAEMON STOPED."
}
  
do_reload() {
     $DAEMON --reload $PIDFILE || echo -n "uwsgi can't reload"
}
  
do_status() {
     ps aux| grep $DAEMON
}
  
case "$1" in
  status)
     echo -en "Status $NAME: \n"
     do_status
  ;;
  start)
     echo -en "Starting $NAME: \n"
     do_start
  ;;
  stop)
     echo -en "Stopping $NAME: \n"
     do_stop
  ;;
  reload|graceful)
     echo -en "Reloading $NAME: \n"
     do_reload
  ;;
  *)
     echo "Usage: $SCRIPTNAME {start|stop|reload}" >&2
     exit 3
  ;;
esac
  
exit 0
 
uwsgi9090

  

6,日常更新重启(可能需要建立软链接),停止操作。

?
1
2
3
4
5
6
7
8
9
10
11
/usr/local/nginx/sbin/nginx
 
/usr/local/nginx/sbin/nginx -s reload
 
/usr/local/nginx/sbin/nginx -s stop
 
sh /usr/local/nginx/sbin/uwsgi9090 start
 
sh /usr/local/nginx/sbin/uwsgi9090 stop
 
sh /usr/local/nginx/sbin/uwsgi9090 reload
目录
相关文章
|
2月前
|
Kubernetes 应用服务中间件 nginx
百度搜索:蓝易云【使用Kubernetes部署Nginx应用教程】
现在,你已经成功在Kubernetes集群上部署了Nginx应用。通过访问Service的外部IP地址,你可以访问Nginx服务。
41 4
|
3月前
|
安全 应用服务中间件 nginx
百度搜索:蓝易云【使用Debian、Docker和Nginx部署Web应用教程】
这些是在Debian上使用Docker和Nginx部署Web应用的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
45 0
|
17天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
78 0
|
3月前
|
应用服务中间件 Linux 网络安全
windows+linux环境下nginx部署环境
windows+linux环境下nginx部署环境
|
2天前
|
应用服务中间件 Linux 开发工具
如何在阿里云服务器快速搭建部署Nginx环境
以下是内容的摘要: 本文档主要介绍了在阿里云上购买和配置服务器的步骤,包括注册阿里云账号、实名认证、选择和购买云服务器、配置安全组、使用Xshell和Xftp进行远程连接和文件传输,以及安装和配置Nginx服务器的过程。在完成这些步骤后,你将能够在服务器上部署和运行自己的网站或应用。
|
17天前
|
应用服务中间件 nginx Windows
windows下Nginx+RTMP部署
windows下Nginx+RTMP部署
15 0
|
1月前
|
应用服务中间件 Linux nginx
web后端-linux-nginx-1.18操作命令和部署
web后端-linux-nginx-1.18操作命令和部署
|
3月前
|
应用服务中间件 Linux 网络安全
【Nginx】Nginx Linux 部署
【1月更文挑战第25天】【Nginx】Nginx Linux 部署
|
3月前
|
TensorFlow 算法框架/工具 数据安全/隐私保护
如何在云服务器使用docker快速部署jupyter web服务器(Nginx+docker+jupyter+tensorflow)
如何在云服务器使用docker快速部署jupyter web服务器(Nginx+docker+jupyter+tensorflow)
77 0
|
3月前
|
Linux 应用服务中间件 nginx
linux下 web 版 vscode本地部署 云端加个nginx同
linux下 web 版 vscode本地部署 云端加个nginx同
20 0