django+nginx+uwsgi部署web站点
环境:
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设置大一些
django+nginx+uwsgi部署web站点相关推荐
- django+nginx+uwsgi部署报错:Permission denied:XXX
原因:未向静态目录设置写入权限 1.进入静态文件所在目录为其设置写入权限(本人图片上传报错) chmod -R 777 media
- Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器
Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器 闲着无聊的时候部署了一个Django项目玩,用vm虚拟机部署的. 准备工作 我使用的系统是Ubuntu16 ...
- nginx+uwsgi部署Django
本篇文章主要介绍了解决nginx+uwsgi部署Django的所有问题(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 最近,自己暑假写的小项目也算完毕了,想着投放 ...
- django+nginx+uwsgi项目部署文档整理
django+nginx+uwsgi项目部署文档整理 参考文章:https://blog.csdn.net/qq_42314550/article/details/81805328 一.python安 ...
- CentOS6.5_64下 nginx+uwsgi+Python +多站点环境搭建
本文章为各位介绍一篇关于CentOS6.5_64下 nginx+uwsgi+Python +多站点环境搭建 python web django 框架的例子. 作为一个严谨(其实就是有强迫症)的程序,为 ...
- Django + Nginx + Uwsgi + Celery + Rabbitmq 做一个高速响的应网站架构
Django :渲染页面,站点访问控制,管理网站,网站框架 Nginx:ip访问管理,数据传输控制 Uwsgi:处理链接Diango和Nginx的传输协议,也可以看作是处理客户端数据和Django之间 ...
- Centos7.x快速配置Django+Nginx+Uwsgi服务
大家好,我是Mr数据杨.今天,将和大家分享如何构建一个完善的服务器环境.折磨了我2天,终于自己调试成功Django+nginx+uwsgi的服务,直接上流程按照这个流程100%能成功,就算你啥也不懂看 ...
- Nginx搭建部署Web服务器并与NFS结合搭建负载均衡服务器
Nginx搭建部署Web服务器并与NFS结合搭建负载均衡服务器 一.搭建NginxWeb服务器 此种方式是用yum安装Nginx,为保证安装成功需在安装之前提前安装epel扩展源. 用 ...
- 【转】Nginx+uWSGI 部署 Django 应用
原文来自: http://www.oschina.net/question/54100_30386 http://obmem.info/?p=703 常见的django webapp 部署方式采用FC ...
最新文章
- ../include/my_global.h:1107: 错误:对 C++ 内建类型‘bool’的重声明
- 无表头单链表的总结----删除节点
- android jni 字符串拼接,JNI 字符串拼接方法
- java json utf-8_Java 编码 和JSON
- 王道机试指南读后总结-6(动态规划等)
- 搭建测试环境、面向对象
- golang(4)使用beego + ace admin 开发后台系统 CRUD
- 非线性光纤光学_多模光纤中的非线性光学
- NRR52832 获取扫描请求
- 谷歌学术镜像_Google镜像站
- 电阻元件、电感元件、电容元件
- 三口烧瓶规格有哪些_三口烧瓶有哪些规格,用途是什么 | | 化工资讯网
- 【Python游戏】Python版本的雷霆战机游戏,最新最简单版本来了
- 写paper之ppt画图——不定期更新
- The Sandbox 与《足球小将》达成合作,将流行的足球漫画及动画带入元宇宙
- BZOJ1022:[SHOI2008]小约翰的游戏John(博弈论)
- python使用excel数据分析统计服_像Excel一样使用python进行数据分析
- 财报数据知冷暖:欧洲电信市场整体复苏中
- 安卓 模拟返回按键
- 2023年批量下载和改名音频专辑(单页列表)
热门文章
- c语言实验题数组逆序,【C语言】利用栈将数组中字符串逆序
- ncnn网络框架使用指南
- (十二)深入浅出TCPIP之Nagle算法
- 关于游戏架构设计的一些整理吧
- 推荐算法--利用用户行为数据(02)
- java placeholder_java – 如何在JTextfield中设置像Placeholder一样的文本
- fastreport 上一行_创业天下全球总裁袁丽军一行莅临平川区 电商农特产扶贫展馆考察指导工作...
- C语言 项目练习-家庭收支软件
- codeforces 116A-C语言解题报告
- Android 进程监控(top命令)