主机论坛_虚拟主机_美国主机_美国虚拟主机_云主机技术_全球主机交流聚集地—Web Hosting Talk 中文站

找回密码
立即注册
发新帖

0

收听

5

听众

1015

主题
发表于 2022-3-18 15:04:02 | 查看: 73| 回复: 0
环境:
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安装)
pip2.7installuwsgipip2.7installrequestsln-s/usr/local/python2.7/bin/uwsgi/usr/bin/uwsgi

4、配置uwsgi.ini

路径:/opt/cmdb/uwsgi.ini
文件内容:
[root@localhost cmdb]# cat uwsgi.ini
[uwsgi]socket=127.0.0.1:8088chdir=/opt/cmdbwsgi-file=cmdb/wsgi.pypidfile=/var/run/uwsgi.piddaemonize=/var/log/uwsgi.logperl-auto-reload=2#buffer-size=102400master=trueprocesses=2threads=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
#!/bin/bash#CommentstosupportchkconfigonLinux#chkconfig:358515#description:uwsgiisanHTTP(S)server,HTTP(S)reverse##authormail@zhaoyanan.cn##chmod+x/etc/rc.d/init.d/uwsgi#chkconfig--adduwsgi#chkconfig--level2345uwsgion##ChangeHistory:#dateauthornote#2016/11/16mail@zhaoyanan.cncreate,refertonginx,andhttp://uwsgi-docs.readthedocs.io/en/latest/Management.htmlset-ePATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binDESC="uwsgidaemon"NAME=uwsgiDAEMON=/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||exit0d_start(){$DAEMON--ini$CONFFILE||echo-n"alreadyrunning"}d_stop(){$DAEMON--stop$PIDFILE||echo-n"notrunning"}d_reload(){$DAEMON--reload$PIDFILE||echo-n"counldnotreload"}d_freload(){$DAEMON--die-on-term$PIDFILE||echo-n"counldnotforcereload"}case"$1"instart)echo-n"Starting$DESCNAME"d_startecho".";;stop)echo-n"Stopping$DESCNAME"d_stopecho".";;reload)echo-n"Reloading$DESCconfiguration..."d_reloadecho"reloaded.";;force_reload)echo-n"Theofficialprovisionoftheparameters,testedandfoundnottosupport..."#d_freload#echo"forcereloaded."echo".";;restart)echo-n"Restarting$DESCNAME"d_stopsleep2d_startecho".";;*)echo"UsageSCRIPTNAME{start|stop|restart|reload|force_reload}">&2exit3;;esacexit0

Nginx安装配置
1、安装nginx
yum-yinstallnginx

2、配置nginx
[root@localhost cmdb]# cat /etc/nginx/conf.d/cmdb.conf
upstreamdjango{server127.0.0.1:8088;}server{listen80;server_name172.16.42.128;charsetutf-8;client_max_body_size10M;location/static{alias/opt/cmdb/static;}location/{uwsgi_send_timeout300;uwsgi_connect_timeout300;uwsgi_read_timeout300;uwsgi_passdjango;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中设置了不允许访问站点
ALLOWED_HOSTS=[]改成
ALLOWED_HOSTS=[‘*’]后问题解决。

2、由于python2.6 不支持django1.8 ,所以需要在服务器上安装python2.7,并且在安装之前,最好输入以下命令,将可能用到的包都装上,否则出现问题时,需要重新编译安装python2.7
yum-yinstallzlib-develbzip2-developenssl-develyum-yinstallncurses-develsqlite-develreadline-develyum-yinstalltk-develgdbm-develdb4-devellibpcap-develyum-yinstallxz-devellibffi-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设置大一些
SD-WAN-MPLS组网http://www.kd010.com/

收藏回复 显示全部楼层 道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|小黑屋|WebHostingTalk中文站

GMT+8, 2024-5-3 14:44 , Processed in 0.064820 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表