debian10搭建django+uwsgi+nginx网站(下)

上一回,我们已经把nginx+uwsgi+django搭建起来了。

这一次,我们先把主机重启一下,然后用浏览器打开 http://主机IP地址,502错误重现了!
在这里插入图片描述
看来是因为uwsgi没有开机自启动,那我们来让他启动吧:
因为在上一节中,只在虚拟环境中安装uwsgi,首先进入虚拟环境

muchun@web:~$ source ~/venv/bin/activate
(venv) muchun@web:~$

通过ini配置文件启动uwsgi

(venv) muchun@web:~$ cd uwsgi
(venv) muchun@web:~/uwsgi$ uwsgi --ini mysite.ini
[uWSGI] getting INI configuration from mysite.ini

用浏览器打开 http://主机IP地址,小火箭再次回归!
在这里插入图片描述
假如希望把uwsgi关闭,应该:

(venv) muchun@web:~/uwsgi$ uwsgi --stop mysite.pid

这时用浏览器观察,应该是502错误了。

问题1:非要进入虚拟环境才可以启动uwsgi吗?不在虚拟环境内可以启动uwsgi吗?*

答案是可以的。
做法:我们要知道uwsgi的具体位置,方法是在虚拟环境中使用which命令,接着退出虚拟环境,然后再通过绝对路径来运行uwsgi

(venv) muchun@web:~/uwsgi$ which uwsgi
/home/muchun/venv/bin/uwsgi
(venv) muchun@web:~/uwsgi$ deactivate
muchun@web:~/uwsgi$ /home/muchun/venv/bin/uwsgi --ini ~/uwsgi/mysite.ini
[uWSGI] getting INI configuration from /home/muchun/uwsgi/mysite.ini
muchun@web:~/uwsgi$

通过以上做法,不用进入虚拟环境便可启动虚拟环境内的uwsgi。

问题2:每次重启关机后,都要手动启动uwsgi,能不能实现开机自启动?

答案:可以。
做法:
在/etc/init.d/下新建一个脚本mysite.sh

脚本内容:

muchun@web:/etc/init.d$ cat mysite.sh
#!/bin/bash
/home/muchun/venv/bin/uwsgi /home/muchun/uwsgi/mysite.ini
exit 0

记住,还要让新建的脚本可执行,通过update-rc.d命令加入开机项

muchun@web:/etc/init.d$ sudo chmod +x mysite.sh
muchun@web:/etc/init.d$ sudo update-rc.d mysite.sh defaults

重启主机,浏览器观察小火箭出现,成功!

但是,你会发现每次重启主机,都要等上一两分钟,好像是卡在某个进程,假如你手动关掉uwsgi后,重启就会很快就完成,应该是系统没有关闭uwsgi的方法,等上一两分钟来强行结束他。
既然系统不知道,那就让我们来告诉它如何来关闭uwsgi吧!做法就是对之前的脚本进行修改

muchun@web:~$ cat /etc/init.d/mysite.sh
#!/bin/bash
#/home/muchun/venv/bin/uwsgi /home/muchun/uwsgi/mysite.ini
#exit 0
case "$1" in
  start)
        # run at boot
        /home/muchun/venv/bin/uwsgi --ini /home/muchun/uwsgi/mysite.ini
        ;;
  stop)
        # run at shutdown
        /home/muchun/venv/bin/uwsgi --stop /home/muchun/uwsgi/mysite.pid
        ;;
  *)
        ;;
esac

至此,uwsgi在每次开机和关机时都能够得到正确的运行和关闭了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值