一: 环境:一台服务器

flask 服务器监控 flask 服务器部署_服务器部署flask项目

二:远程连接服务器

flask 服务器监控 flask 服务器部署_flask_02

三:部署项目需要环境

  • 1、首先安装python解释器和pip工具,这个就不多细说
  • 2、安装虚拟环境,将项目单独隔离开,python第三方库比较多,有些库可能被弃用,没有维护,全部安装在原生解释器环境,可能导致部分正常库无法使用
sudo pip install virtualenv
  sudo pip install virtualenvwrapper
  • 3、创建项目存放目录,目录可以自定义,保证和配置文件bashrc中配置的环境目录一致即可
mkdir $HOME/.virtualenvs
  • 4、修改配置文件bashrc,配置虚拟环境
vim ~/.bashrc
	# 末尾添加配置信息
	# 默认python3虚拟环境
	export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
	# 添加虚拟环境目录到环境变量中
	export WORKON_HOME=$HOME/.virtualenvs
	# 设置开机自动运行虚拟环境 安装完毕virtualenvwrapper库之后,virtualenvwapper.sh文件会默认存在这个位置
	source /usr/local/bin/virtualenvwrapper.sh
	# 配置文件修改完毕,保存退出 .bashrc 文件
  • 5、刷新配置文件
source ~/.bashrc
  • 6、创建虚拟环境
mkvirtualenv -p python3 py3_web_flask
	# 进入虚拟环境
	workon py3_web_flask
	# 安装flask框架
	pip install flask
  • 7、安装完毕,一切准备工作完毕,开始简单项目
# 创建文件夹
	mkdir py3_web
	# 进入文件夹 py3_web, 创建 main.py
	cd py3_web
	touuch main.py
  • 8、编写demo
vim main.py
项目实例代码
from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return '<h1>Hello World!<h1>'

if __name__ == "__main__":
	app.run(host='0.0.0.0',port=80)
  • 保存退出
  • 9、运行代码
python main.py
  • 如下显示,说明框架正常启动
  • 10、浏览器访问服务器公网ip,就可以看到Hello World!

    重点来了

uwsgi + nginx + flask 部署web项目

1、安装uwsgi

apt-get install uwsgi

任意位置编写uwsgi配置文件

vim uwsgi.ini

[uwsgi]
# localhost  port  端口自定义
http=127.0.0.1:9000
# uwsgi 管理的项目入口文件
wsgi-file=/root/web/wether_spider/index.py
# 管理的flask对象app
callable=app
touch-reload=/root/web

启动uwsgi
uwsgi --ini uwsgi.ini 启动后日志显示终端
uwsgi --ini uwsgi.ini --daemonize /var/log/uwsgi.log 后台运行,日志输出到指定文件

2、安装Nginx

修改Nginx配置

Nginx默认配置文件在 /etc/nginx/nginx.conf

# 主要是修改http 里面的server内容
http{
	server {
                listen     8080; # 监听端口 默认80
                server_name  106.12.194.204; # 本机ip
                location / {  # 将访问 / url时转发到下面的url
                proxy_pass http://127.0.0.1:9000;
                }
        }


}

配置文件中还有引进了别的配置文件建议注释掉

#       include /etc/nginx/conf.d/*.conf;
#       include /etc/nginx/sites-enabled/*;
  • nginx -t 命令检查Nginx配置是否有错误
  • nginx -c /etc/nginx/nginx.conf 重新加载Nginx配置文件
  • service nginx restart 重启服务
  • nginx -s stop 快速停止或关闭Nginx
  • nginx -s quit 正常停止或关闭Nginx
  • nginx -s reload 配置文件修改重装载命令

配置过程中可能会用到Linux命令

# 查看端口运行的进程任务 进程pid
lsof -i :80
# 杀死进程
kill -9 pid 
# 杀死运行的服务
pkill -9 nginx(服务名)
# 管道过滤查询
ps -ef | grep nginx