gunicorn部署的网站在虚拟机中&局域网访问此网站

gunicorn是WSGI通用服务器,与大多数网络框架兼容,可以用gunicorn来部署网站。

ssh进入虚拟机后,找到自己的网站根目录。我的网站是python flask项目,直接用pip install gunicorn就可以用gunicorn了。

我的网站根目录内容是:gunicorn_config.py、main.py、static、templates,都是flask经典的目录。

在网站根目录直接敲下命令:

gunicorn main:app

main是你网站类所在的py文件,app是你网站应用python的类名。

gunicorn会默认在127.0.0.1:8000运行你的网站,也就是你在虚拟机的图形界面中,在虚拟机的浏览器中输入127.0.0.1:8000就能够访问到你所部署的网页了。

但是这只能虚拟机访问,其他局域网上的电脑并不能访问。

如果是想要在外面访问虚拟机中的网站,需要虚拟机桥接模式联网(这个可以参考我https://blog.csdn.net/Yonggie/article/details/104126903的前半部分),还需要配置其在0.0.0.0运行,。

gunicorn的具体指令,可以gunicorn -help来查看,

其可以在参数指定其socket,也可以通过py文件来配置(我用的就是这种方式,gunicorn_config.py就是我的配置文件)。

配置文件里写的很简单:

gunicorn部署的网站在虚拟机中&局域网访问此网站_第1张图片

然后打入

gunicorn -c gunicorn_config.py mian:app

其等同于:

gunicorn -w 1 -b 0.0.0.0:5000 main:app

这样子就可以在局域网里访问到你的网页了。

其他选项可以参考其文档,或者这篇博客:https://www.jianshu.com/p/260f18aa5462

 

如果你想ssh退出之后还想让此网站运行,一个可行的方法是用gunicorn的“以守护进程形式来运行Gunicorn进程”(其实就是将这个服务放到后台去运行。)

在配置里加上  

daemon = True

或者命令里加上 -D 选项可以了。

想要停止这个网站服务,杀死这个进程即可。

用下面查看其主进程,

pstree -ap | grep gunicorn

# 关闭gunicorn,假设主进程pid为123456
kill -9 123456

 

你可能感兴趣的:(flask)