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

时间: 2024-12-30 00:25:23

NGINX+UWSGI部署生产的DJANGO代码的相关文章

Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程_python

具体环境: Ubuntu 14.04 Python 2.7.6 Django 1.7.1 Virtualenv name:test Nginx uwsgi 假设 项目文件夹位于 /data/www/ts 设置保存在 ./conf 复制代码 代码如下: virtualenv name = test domain name = example.com django+uwsgi的部署实在是太蛋疼了..网上已有的教程似乎有新版本的兼容问题.最后跑到uwsgi官网上找的教程终于跑通了.. 不过官网的教程似

Django+Nginx+uwsgi的部署

先决条件: nginx(>0.8):uwsgi:django: flup 下载地址: wget http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz 安装: sudo apt-get libxml2-dev python-dev flup和django   都是用 python setup.py install tar zxvf uwsgi-0.9.9.2.tar.gz cd uwsgi-0.9.9.2 make -f Makefil

CentOS6.5_64下 nginx+uwsgi+Python +多站点环境搭建 python web django 框架

nginx+uwsgi+Python环境介绍: 系统:CentOS6.5_64_mini nginx版本:nginx-1.6.0 python版本:Python2.7.8   第一部分系统设置 1:查看系统内核 #  uname -r 2.6.32-431.el6.x86_64 2:更新内核 #  yum -y install kernel 3:重启系统 #  reboot 4:重启后查看是否启用新内核 #  uname -r 2.6.32-431.20.5.el6.x86_64 5:可以删除老

Ubuntu Nginx uwsgi django 初试

/************************************************************************************** * Ubuntu Nginx uwsgi django 初试 * 说明: * 最近打算通过Python搭建一个数据收集的网站,先做一个搭建测试. * * 2016-8-5 深圳 南山平山村 曾剑锋 ***************************************************************

nginx+uwsgi+django中的uwsgi.ini配置问题

问题描述 nginx+uwsgi+django中的uwsgi.ini配置问题 最近配置了nginx+uwsgi+django,其中项目目录下我新建了uwsgi.ini配置文件 [uwsgi] socket = 127.0.0.1:8088 master = true pidfile = /tmp/uwsgi.pid processes = 8 chdir = /home/test daemonize=/home/log/uwsgi.log module = test.wsgi:applicati

django-在用uwsgi部署Django应用时报错

问题描述 在用uwsgi部署Django应用时报错 配置文件如下: [uwsgi] http-socket = 0.0.0.0:8080 chdir = /root/yigo_runtime/app virtualenv = /root/yigo_runtime/python env = DJANGO_SETTINGS_MODULE=yigo_runtime.settings static-map = /static=/root/yigo_runtime/app/static module =

在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程_python

最近尝试把项目迁移到Python环境下,特别新装了一台干净的Debian系统,准备重新配置环境,上网找了一些运行Python Web的环境方案,最后敲定Nginx+uWSGI组合,Nginx用得比较多,熟练些:uWSGI据说性能不错,想尝试一下. 网上大部分教程都是要求到uWSGI官方网站下载源码包,然后通过编译的方式安装,比如对于一台新Debian系统,可以通过下面的命令安装: apt-get update apt-get upgrade apt-get install build-essen

Nginx+uWSGI+Django+Python环境安装配置详解

一.安装PYTHON2.7.7: [root@hz tools]# pwd /byrd/tools [root@hz tools]# wget https://www.python.org/ftp/python/2.7.7/Python-2.7.7.tgz [root@hz tools]# tar zxf Python-2.7.7.tgz [root@hz tools]# cd Python-2.7.7 [root@hz Python-2.7.7]# ./configure --prefix=/

在SAE上部署Python的Django框架的一些问题汇总

  这篇文章主要介绍了在SAE上部署Python的Django框架的一些问题汇总,SAE是新浪的一个在线APP部署平台,并且对Python应用提供相关支持,需要的朋友可以参考下 花了些工夫将碎片网部署到了SAE,中途遇到各类问题.感觉SAE看上去很美,实际上却并不是太成熟(至少python版如此). 下面记录下我遇到的一些主要问题以及解决方法. django版本问题 Django1.4都即将发布了,SAE平台自带的SAE版本依旧为1.2x.为使用django1.3版本,你需上传自己的django