uwsgi加入系统服务

背景

网上找了一圈,没有把uswgi加入系统服务的脚本,我来补充一个吧。

实践基于系统CentOS6,但不限于此。

uWSGI是什么

uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。

安装

uWSGI 的安装很简单:
pip install uwsgi

服务脚本内容

vi /etc/rc.d/init.d/uwsgi

#!/bin/bash
# Comments to support chkconfig on Linux
# chkconfig: 35 85 15
# description: uwsgi is an HTTP(S) server, HTTP(S) reverse
#
# author     null
#
# chmod +x /etc/rc.d/init.d/uwsgi
# chkconfig --add uwsgi
# chkconfig --level 2345 uwsgi on
#
# Change History:
# date        author          note
# 2016/11/16  null  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
SCRIPTNAME=/etc/init.d/$NAME
CONFFILE=/opt/nginx/conf/uwsgi.ini
PIDFILE=/var/run/uwsgi.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

服务管理

chmod +x /etc/rc.d/init.d/uwsgi

chkconfig --add uwsgi

chkconfig --level 2345 uwsgi on

### 如何在 Windows 系统上配置 uWSGI 服务器 #### 准备工作 为了能够在 Windows 上成功配置 uWSGI,需要先确保 Python 已经正确安装并设置好了环境变量。可以通过命令提示符输入 `python --version` 来验证是否已经安装了 Python。 #### 安装 uWSGI 通过 pip 命令来安装 uWSGI 是最简便的方式之一,在命令行工具中执行如下指令: ```bash pip install uwsgi ``` 这一步骤会自动下载最新的稳定版本的 uWSGI 并完成安装过程[^1]。 #### 创建 Django 项目的 uWSGI 配置文件 创建一个新的文本文件命名为 `uwsgi.ini` 放置于 Django 项目根目录下,编辑此文件加入以下内容作为基础配置模板: ```ini [uwsgi] chdir = . module = myproject.wsgi:application ; 将 'myproject' 替换成实际的应用名称 master = true processes = 5 ; 可根据需求调整进程数 socket = :8000 ; 绑定端口, Nginx 或其他反向代理将会连接这个地址 vacuum = true ; 当服务停止时清理掉临时文件 die-on-term = true ; 接收到终止信号后优雅退出 ``` 请注意替换其中占位符部分以匹配具体的项目结构和路径[^2]。 #### 测试启动 uWSGI 打开命令提示符导航至包含上述 `.ini` 文件所在的目录位置,接着运行下面这条命令测试能否正常启动 uWSGI: ```bash uwsgi --ini uwsgi.ini ``` 如果一切顺利的话,现在应该可以看到控制台输出有关于 uWSGI 启动的信息,并且监听指定端口号等待请求到来。 #### 使用 Nginx 进行反向代理 (可选) 虽然可以在开发阶段直接访问由 uWSGI 提供的服务接口,但在生产环境中通常还需要搭配 Web Server 负责处理静态资源分发以及负载均衡等功能。此时可以选择安装 Nginx 并按照官方文档指导将其配置成指向本地 uWSGI 的反向代理。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉思的归零者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值