最近做的一个项目需要将服务部署到服务器上,项目采用的是flask+uwsgi+nginx架构。在网上搜集资料踩坑无数,整整花了三天时间才把环境部署成功。
1.nginx
sudo apt-get update 获取最新的软件包
sudo apt-get upgrade 列出了需要更新的软件,需要下载的大小,占用的硬盘空间大小等
查看安装状态:sudo systemctl status nginx
停止运行:sudo systemctl stop nginx
开始运行:sudo systemctl start nginx
nginx配置 vi /etc/nginx/sites-available/default
server {
listen 80;
server_name _ localhost;
root /www/myproject; # 项目路径
location /static{
# 项目静态文件,动静分离
alias /www/myproject/static;
}
location / {
# uwsgi_params在Nginx里面,使用自己的路径
include /etc/nginx/uwsgi_params;
# 这里是之前配置uwsgi时设置的端口号8000
uwsgi_pass localhost:8000;
}
}
2.uwsgi
在项目更目录下新建一个ini文件 vi uwsgi.ini
[uwsgi]
# 监听端口,使用Nginx代理时使用这个
socket = 127.0.0.1:8000
# 独立服务器运行时使用这个
# http = 0.0.0.0:8000
# 工作路径(你的项目根目录路径)
chdir = /www/myproject
# wsgi 路径,项目调用的主程序文件(不在项目根目录需要带上路径)
wsgi-file = myproject_run.py
# 项目内的python程序名称,flask的程序通常叫app,
callable = app
# 设置进程 processes 和 workers 一样的意思
# processes = 2
workers = 2
# 每个进程下面的线程数
threads = 4
# 以独立守护进程运行
master = True
# 允许在请求中开启新线程
enable-threads = True
# 存放uwsgi进程的pid,便于重启和关闭操作
pidfile = uwsgi.pid
# 日志文件
daemonize = uwsgi_server.log
# 返回一个json串,显示各进程和worker的状态
stats=127.0.0.1:9191
# 启用内存报告,报告占用的内存
memory-report=true
# 缓冲区大小,设置请求的最大大小
buffer-size = 65535
(ini就是上面新建的ini文件,pid文件在ini运行后会出现)
(uwsgi运行后需要删除pid文件后重新运行
)
启动:uwsgi --ini xxx.ini
重启:uwsgi --reload xxx.pid
停止:uwsgi --stop xxx.pid