uwsgi django nginx多站点 pyvenv virutalvenv python 3 django 2这些限制下,如何让uwsgi跑起来?

简介: 之前正式环境是跑的uwsgi,这次升级之后, 以前的nginx和uwsgi的配置都过时而不可用了。

之前正式环境是跑的uwsgi,这次升级之后,

以前的nginx和uwsgi的配置都过时而不可用了。


我们需要的是通过二级目录访问,而不能用根目录,

因为根目录用于整体工具的网页导航。


这次重新搜索了文档,让相关的多应用再跑起来了。

uwsgi版本:

2.0.15



====================之前的nginx和uwsgi配置=====python2.7 django1.8==============


upstream xxx_host {
    server ip:host;
}

server {
        listen       80;
        server_name  localhost;
       
        location /xxx/ {            
            include  uwsgi_params;
            uwsgi_pass  xxx_host;
	    uwsgi_param SCRIPT_NAME /xxx; 
	    uwsgi_modifier1 30;  #此行加上面,进行丑陋patch
            index  index.html index.htm;
	    client_max_body_size          1000m;
            client_body_timeout           5m;
            proxy_connect_timeout         5m;
            proxy_read_timeout            5m;
            proxy_send_timeout            5m;
        }

	location ^~ /xxx/static {
            	alias /xx/xx/static;
        }
    }


[uwsgi]
socket = ip:9090
chdir = /xxx/xx/xx/xx
module = settings.wsgi #(定位wsgi目录及文件,结合上面的chdir)
master = true
vhost = true
no-stie = true
workers = 4
reload-mercy = 10
vacuum = true    
max-requests = 1000
limit-as = 512
buffer-sizi = 30000
pidfile = /var/log/xxx/uwsgi9090.pid   
daemonize = /var/log/xxx/uwsgi9090.log
listen=1024


====================现在的nginx和uwsgi配置=====python3.6 django2.0==============


upstream xxx_host {
    server ip:9090;
}

server {
        listen       80;
        server_name  localhost;
       
        location /xxx/ {
            include  uwsgi_params;
            uwsgi_pass xxx_host;
            client_max_body_size          1000m;
            client_body_timeout           5m;
            proxy_connect_timeout         5m;
            proxy_read_timeout            5m;
            proxy_send_timeout            5m;
        }

	location ^~ /xxx/static {
            	alias /xx/xxxx/xxstatic;
        }
    }


[uwsgi]
socket = ip:9090
mount = /xxx=/xxx/xx/xxxx/settings/wsgi.py
manage-script-name = true   # 此行加上行定位,比前面优雅
master = true
vhost = true
no-stie = true
workers = 4
reload-mercy = 10
vacuum = true    
max-requests = 1000
limit-as = 512
buffer-sizi = 30000
pidfile = /var/log/xxx/uwsgi9090.pid   
daemonize = /var/logxxx/uwsgi9090.log
listen=1024

再来一个uwsgi系统服务启停命令的脚本:


#! /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/venv_py3/bin
DESC="uwsgi daemon"
NAME=uwsgi9090
DAEMON=/root/xxx/venv_py3/bin/uwsgi
CONFIGFILE=/root/xxx/xxx/$NAME.ini
PIDFILE=/var/log/prism/$NAME.pid
SCRIPTNAME=/root/xxx/$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


目录
相关文章
|
2月前
|
监控 安全 应用服务中间件
python中Django入门(四)
python中Django入门(四)
31 0
|
1月前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【4月更文挑战第9天】本文对比了Python三大Web框架Django、Flask和Pyramid。Django功能全面,适合快速开发,但学习曲线较陡;Flask轻量灵活,易于入门,但默认配置简单,需自行添加功能;Pyramid兼顾灵活性和可扩展性,适合不同规模项目,但社区及资源相对较少。选择框架应考虑项目需求和开发者偏好。
|
2天前
|
前端开发 UED Python
Wagtail-基于Python Django的内容管理系统CMS实现公网访问
Wagtail-基于Python Django的内容管理系统CMS实现公网访问
|
2天前
|
中间件 Python
中间件应用Django Middleware(Python)
中间件应用Django Middleware(Python)
22 6
|
11天前
|
运维 监控 Serverless
Serverless 应用引擎产品使用之阿里函数计算中在自定义环境下用debian10运行django,用官方层的python3.9,配置好环境变量后发现自定义层的django找不到了如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
21 3
|
14天前
|
存储 搜索推荐 开发者
django-haystack,具有全文搜索功能的 Python 库!
django-haystack,具有全文搜索功能的 Python 库!
25 0
|
15天前
|
SQL 缓存 数据库
在Python Web开发过程中:数据库与缓存,如何使用ORM(例如Django ORM)执行查询并优化查询性能?
在Python Web开发中,使用ORM如Django ORM能简化数据库操作。为了优化查询性能,可以:选择合适索引,避免N+1查询(利用`select_related`和`prefetch_related`),批量读取数据(`iterator()`),使用缓存,分页查询,适时使用原生SQL,优化数据库配置,定期优化数据库并监控性能。这些策略能提升响应速度和用户体验。
17 0
|
20天前
|
安全 前端开发 中间件
Python面试题:Django Web框架基础与进阶
【4月更文挑战第17天】本文详细梳理了Django面试中常考的基础和进阶问题,包括MTV架构、ORM、数据库迁移、视图模板、中间件、信号、表单验证、用户认证授权等,并指出易错点及规避策略。提供代码示例展示模型和视图的实现,助力开发者在面试中脱颖而出。
40 12
|
23天前
|
Python
基于Django的Python应用—学习笔记—功能完善
基于Django的Python应用—学习笔记—功能完善
|
23天前
|
存储 数据库 数据安全/隐私保护
基于Django的Python应用——学习笔记
基于Django的Python应用——学习笔记