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月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
1247 4
|
2月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
170 5
|
10月前
|
应用服务中间件 PHP nginx
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
简介: 本教程介绍如何基于 Dragonwell 的 Ubuntu 镜像创建一个运行 Nginx 的 Docker 容器。首先从阿里云容器镜像服务拉取基础镜像,然后编写 Dockerfile 确保 Nginx 作为主进程运行,并暴露 80 端口。最后,在包含 Dockerfile 的目录下构建自定义镜像并启动容器,确保 Nginx 在前台运行,避免容器启动后立即退出。通过 `docker build` 和 `docker run` 命令完成整个流程。
405 25
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
|
5月前
|
存储 前端开发 应用服务中间件
Django 实战:静态文件与媒体文件从开发配置到生产部署
Django项目中,静态文件(Static Files)和媒体文件(Media Files)是两类不同用途的文件。本文详细介绍了它们的区别、配置方法以及在开发与生产环境中的处理方式,并结合用户头像上传功能进行实战演示,最后讲解了如何通过Nginx或OpenResty部署静态与媒体文件服务。
286 1
|
7月前
|
应用服务中间件 Linux 网络安全
技术指南:如何把docsify项目部署到基于CentOS系统的Nginx中。
总结 与其他部署方法相比,将docsify项目部署到基于CentOS系统的Nginx中比较简单。以上步骤应当帮助你在不花费太多时间的情况下,将你的项目顺利部署到Nginx中。迈出第一步,开始部署你的docsify项目吧!
346 14
|
中间件 应用服务中间件 nginx
Nginx+uWSGI+Django原理
Nginx+uWSGI+Django原理
|
前端开发 JavaScript 应用服务中间件
使用nginx部署网站
使用nginx部署网站
|
JavaScript 应用服务中间件 nginx
nginx部署vue项目
本文介绍了将Vue项目部署到Nginx的步骤,包括构建Vue项目、上传dist文件夹到服务器、安装Nginx、配置Nginx代理静态文件以及重启Nginx,确保了Vue应用可以通过域名或IP地址访问。
837 1
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
3863 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
|
Kubernetes 应用服务中间件 nginx
k8s基础使用--使用k8s部署nginx服务
本文介绍了Kubernetes中核心概念Deployment、Pod与Service的基本原理及应用。Pod作为最小调度单元,用于管理容器及其共享资源;Deployment则负责控制Pod副本数量,确保其符合预期状态;Service通过标签选择器实现Pod服务的负载均衡与暴露。此外,还提供了具体操作步骤,如通过`kubectl`命令创建Deployment和Service,以及如何验证其功能。实验环境包括一台master节点和两台worker节点,均已部署k8s-1.27。
1170 1