环境:

django:1.8.16

python:2.7.13

pip:2.7

uwsgi:2.0.15

project路径: /opt/cmdb/

Uwsgi的安装配置

1、安装python2.7 (省略安装过程)

2、安装pip2.7 (省略安装过程)

3、安装uwsgi(注意:要用pip2.7安装)

1
2
3
pip2.7 install uwsgi
pip2.7 install requests
ln -s /usr/local/python2.7/bin/uwsgi /usr/bin/uwsgi

4、配置uwsgi.ini

路径: /opt/cmdb/uwsgi.ini

文件内容:

[root@localhost cmdb]# cat uwsgi.ini

1
2
3
4
5
6
7
8
9
10
11
[uwsgi]
socket = 127.0.0.1:8088
chdir=/opt/cmdb
wsgi-file = cmdb/wsgi.py
pidfile = /var/run/uwsgi.pid
daemonize = /var/log/uwsgi.log
perl-auto-reload = 2
#buffer-size = 102400
master = true
processes = 2
threads = 4

Uwsgi:常用参数和选项

关于参数的具体使用,可以阅读官方文档http://uwsgi-docs.readthedocs.org/en/latest/Options.html ,在这里列出一些常用的参数:

  • chdir 项目目录

  • home virtualenv目录(如没有运行virtualenv虚拟环境,则无需设置)

  • socket 套接字文件或TCP套接字,例如:site1.uwsgi.sock 或 127.0.0.1:8000

  • uid 用户id

  • gid 用户组id

  • processes 工作进程数

  • harakiri 进程超过该时间未响应就重启该进程(默认单位为秒)

  • module 要启动的wsgi模块入口,如:mysite.wsgi:application

  • ini 指定ini配置文件

  • xml 指定xml配置文件(与ini类似)

  • file 指定要运行的wsgi程序文件,如:test.py

  • emperor Emperor模式

  • so-keepalive 开启TCP KEEPALIVE(unix套接字方式下无效)

uwsgi服务init脚本 /etc/init.d/cmdb

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
#!/bin/bash
# Comments to support chkconfig on Linux
# chkconfig: 35 85 15
# description: uwsgi is an HTTP(S) server, HTTP(S) reverse
#
# author     mail@zhaoyanan.cn
#
# chmod +x /etc/rc.d/init.d/uwsgi
# chkconfig --add uwsgi
# chkconfig --level 2345 uwsgi on
#
# Change History:
# date        author          note
# 2016/11/16  mail@zhaoyanan.cn  create, refer to nginx, and http://uwsgi-docs.readthedocs.io/en/latest/Management.html
  
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="uwsgi daemon"
NAME=uwsgi            
DAEMON=/usr/bin/$NAME  ##指向uwsgi的命令路径
SCRIPTNAME=/etc/init.d/$NAME  ##启动脚本路径
CONFFILE=/opt/cmdb/uwsgi.ini  ##uwsgi.ini配置文件路径
PIDFILE=/var/run/uwsgi.pid   ##pid文件路径
test -x $DAEMON || exit 0
  
d_start(){
    $DAEMON --ini $CONFFILE || echo -n " already running"
}
  
d_stop() {
    $DAEMON --stop $PIDFILE || echo -n " not running"
}
  
d_reload() {
    $DAEMON --reload $PIDFILE || echo -n " counld not reload"
}
  
d_freload() {
    $DAEMON --die-on-term $PIDFILE || echo -n " counld not force reload"
}
  
case "$1" in
start)
    echo -n "Starting $DESC:$NAME"
    d_start
    echo "."
;;
stop)
    echo -n "Stopping $DESC:$NAME"
    d_stop
    echo "."
;;
reload)
    echo -n "Reloading $DESC configuration..."
    d_reload
    echo "reloaded."
;;
force_reload)
    echo -n "The official provision of the parameters, tested and found not to support..."
    # d_freload
    # echo "force reloaded."
    echo "."
;;
restart)
    echo -n "Restarting $DESC: $NAME"
    d_stop
    sleep 2
    d_start
    echo "."
;;
*)
    echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force_reload}" >&2
    exit 3
;;
esac
  
exit 0

Nginx安装配置

1、安装nginx

1
yum -y install nginx

2、配置nginx

[root@localhost cmdb]# cat /etc/nginx/conf.d/cmdb.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
upstream django {
    server 127.0.0.1:8088;
    }
server {
    listen      80;
    server_name 172.16.42.128;
    charset     utf-8;
    client_max_body_size 10M;
    location /static {
        alias /opt/cmdb/static;
    }
    location / {
        uwsgi_send_timeout 300;
        uwsgi_connect_timeout 300;
        uwsgi_read_timeout 300;
        uwsgi_pass  django;
        include     /etc/nginx/uwsgi_params;
    }
}

启动站点

1、启动nginx服务

/etc/init.d/nginx start (删除默认的default.conf配置)

2、启动uwsgi

/etc/init.d/cmdb start

排错:

1、在实际操作中发现,启动uwsgi服务后,访问站点出现“502 Bad Gateway”的报错,后来发现是在settings中设置了不允许访问站点

1
ALLOWED_HOSTS = []

改成

1
ALLOWED_HOSTS = [‘*’]

后问题解决。

2、由于python2.6 不支持django1.8 ,所以需要在服务器上安装python2.7,并且在安装之前,最好输入以下命令,将可能用到的包都装上,否则出现问题时,需要重新编译安装python2.7

1
2
3
4
yum -y install zlib-devel bzip2-devel openssl-devel 
yum -y install ncurses-devel sqlite-devel readline-devel 
yum -y install tk-devel gdbm-devel db4-devel libpcap-devel
yum -y install xz-devel libffi-devel

3、用pip安装uwsgi时,一定要用pip2.7(用python2.7安装的pip) 进行安装

4、invalid request block size: 4161 (max 4096)...skip报错解决

在访问站点时,出现了invalid request block size: 4161 (max 4096)...skip报错解决的报错。

解决办法是在uwsgi.ini配置文件中增加一条配置:buffer-size = 102400

将buffer-size设置大一些

本文转自 曾哥最爱 51CTO博客,原文链接:http://blog.51cto.com/zengestudy/1930346,如需转载请自行联系原作者

django+nginx+uwsgi部署web站点相关推荐

  1. django+nginx+uwsgi部署报错:Permission denied:XXX

    原因:未向静态目录设置写入权限 1.进入静态文件所在目录为其设置写入权限(本人图片上传报错) chmod -R 777 media

  2. Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器

    Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器 闲着无聊的时候部署了一个Django项目玩,用vm虚拟机部署的. 准备工作 我使用的系统是Ubuntu16 ...

  3. nginx+uwsgi部署Django

    本篇文章主要介绍了解决nginx+uwsgi部署Django的所有问题(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 最近,自己暑假写的小项目也算完毕了,想着投放 ...

  4. django+nginx+uwsgi项目部署文档整理

    django+nginx+uwsgi项目部署文档整理 参考文章:https://blog.csdn.net/qq_42314550/article/details/81805328 一.python安 ...

  5. CentOS6.5_64下 nginx+uwsgi+Python +多站点环境搭建

    本文章为各位介绍一篇关于CentOS6.5_64下 nginx+uwsgi+Python +多站点环境搭建 python web django 框架的例子. 作为一个严谨(其实就是有强迫症)的程序,为 ...

  6. Django + Nginx + Uwsgi + Celery + Rabbitmq 做一个高速响的应网站架构

    Django :渲染页面,站点访问控制,管理网站,网站框架 Nginx:ip访问管理,数据传输控制 Uwsgi:处理链接Diango和Nginx的传输协议,也可以看作是处理客户端数据和Django之间 ...

  7. Centos7.x快速配置Django+Nginx+Uwsgi服务

    大家好,我是Mr数据杨.今天,将和大家分享如何构建一个完善的服务器环境.折磨了我2天,终于自己调试成功Django+nginx+uwsgi的服务,直接上流程按照这个流程100%能成功,就算你啥也不懂看 ...

  8. Nginx搭建部署Web服务器并与NFS结合搭建负载均衡服务器

    Nginx搭建部署Web服务器并与NFS结合搭建负载均衡服务器 一.搭建NginxWeb服务器     此种方式是用yum安装Nginx,为保证安装成功需在安装之前提前安装epel扩展源.     用 ...

  9. 【转】Nginx+uWSGI 部署 Django 应用

    原文来自: http://www.oschina.net/question/54100_30386 http://obmem.info/?p=703 常见的django webapp 部署方式采用FC ...

最新文章

  1. ../include/my_global.h:1107: 错误:对 C++ 内建类型‘bool’的重声明
  2. 无表头单链表的总结----删除节点
  3. android jni 字符串拼接,JNI 字符串拼接方法
  4. java json utf-8_Java 编码 和JSON
  5. 王道机试指南读后总结-6(动态规划等)
  6. 搭建测试环境、面向对象
  7. golang(4)使用beego + ace admin 开发后台系统 CRUD
  8. 非线性光纤光学_多模光纤中的非线性光学
  9. NRR52832 获取扫描请求
  10. 谷歌学术镜像_Google镜像站
  11. 电阻元件、电感元件、电容元件
  12. 三口烧瓶规格有哪些_三口烧瓶有哪些规格,用途是什么 | | 化工资讯网
  13. 【Python游戏】Python版本的雷霆战机游戏,最新最简单版本来了
  14. 写paper之ppt画图——不定期更新
  15. The Sandbox 与《足球小将》达成合作,将流行的足球漫画及动画带入元宇宙
  16. BZOJ1022:[SHOI2008]小约翰的游戏John(博弈论)
  17. python使用excel数据分析统计服_像Excel一样使用python进行数据分析
  18. 财报数据知冷暖:欧洲电信市场整体复苏中
  19. 安卓 模拟返回按键
  20. 2023年批量下载和改名音频专辑(单页列表)

热门文章

  1. c语言实验题数组逆序,【C语言】利用栈将数组中字符串逆序
  2. ncnn网络框架使用指南
  3. (十二)深入浅出TCPIP之Nagle算法
  4. 关于游戏架构设计的一些整理吧
  5. 推荐算法--利用用户行为数据(02)
  6. java placeholder_java – 如何在JTextfield中设置像Placeholder一样的文本
  7. fastreport 上一行_创业天下全球总裁袁丽军一行莅临平川区 电商农特产扶贫展馆考察指导工作...
  8. C语言 项目练习-家庭收支软件
  9. codeforces 116A-C语言解题报告
  10. Android 进程监控(top命令)