Ubuntu配置uWSGI+Supervisor+Nginx部署Flask项目

uWSGI

安装

pip3 install uwsgi

配置

在项目根目录下创建 uwsgi.ini
[uwsgi]
socket = 127.0.0.1:8080
plugins = python3
chdir = /home/web # 此为项目文件存放位置
wsgi-file = manager.py # 项目运行入口
callable = app # 此为Flask对象

使用

在项目根目录下,利用配置启动项目
uwsgi --ini uwsgi.ini

Supervisor

安装

pip3 install supervisor
# 或者:apt-get install supervisor

在 /etc/supervisor/conf.d下创建文件(*.conf)

[program:zymd]		# 此处zymd为项目名 
command = uwsgi --ini /home/zymd/uwsgi.ini	# uwsgi启动命令

# stopsignal = INT	# 或 QUIT,使关闭uwsgi的信号为SIGINT/SIGQUIT,默认为SIGTERM
autostart = true	# 设置自动启动
autorestart = true	# 设置自动重启

# 日志,要注意创建相应目录,文件可以不用
stdout_logfile = /home/zymd/log/run.log		# 运行日志
stderr_logfile = /home/zymd/log/error.log	# 错误日志

使用

启动

service supervisor start

更新配置

supervisorctl update

重启

service supervisor restart
supervisorctl reload

停止

service supervisor stop

查看正在守护进程

ps aux|grep uwsgi
supervisorctl

Nginx

安装

安装gcc、g++依赖库
sudo apt-get install build-essential
sudo apt-get install libtool
安装pcre依赖库
sudo apt-get install libpcre3 libpcre3-dev
安装zlib依赖库
wget http://prdownloads.sourceforge.net/libpng/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
sudo make install

安装nginx
sudo apt-get install nginx

附下载安装nginx
wget http://nginx.org/download/nginx-1.15.12.tar.gz
tar -zxvf nginx-1.15.12.tar.gz
cd nginx-1.15.12
./configure --prefix=/usr/local/nginx
make
sudo make install

配置

切换到,编辑default

cd /etc/nginx/sites-enabled

http

server 
{
	listen 80;
	server_name x.x.x.x;	# 服务器IP地址或是域名
	location / 
	{
		include uwsgi_params;
		uwsgi_pass localhost:8080;	# 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理
		uwsgi_param UWSGI_PYHOME /home/zymd/venv;	# 指向虚拟环境目录
		uwsgi_param UWSGI_CHDIR /home/zymd;			# 指向网站根目录
		uwsgi_param UWSGI_SCRIPT manager:app;		# 指定启动程序及Flask对象
	}
}

使用SSL证书(https)

# 首先需将下载的证书文件(公钥、私钥)存放在 /etc/nginx/ssl/下
server 
{
	listen 443;
	server_name wengcx.top;	# 域名
	ssl on;
	ssl_certificate /etc/nginx/ssl/xxxxxx.pem;		# SSL证书公钥文件
	ssl_certificate_key /etc/nginx/ssl/xxxxxx.key;	# SSL证书私钥文件
	ssl_session_timeout 5m;			# 设置会话缓存过期时间
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
	ssl_prefer_server_ciphers on;	# 设置协商加密算法时,优先使用服务器的加密套件
	location / 
	{
		include uwsgi_params;
		uwsgi_pass localhost:8080;	# 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理
		uwsgi_param UWSGI_PYHOME /home/zymd/venv;	# 指向虚拟环境目录
		uwsgi_param UWSGI_CHDIR /home/zymd;			# 指向网站根目录
		uwsgi_param UWSGI_SCRIPT manager:app;		# 指定启动程序及Flask对象
	}
}
server
{
	listen 80;
	server_name wengcx.top;
	return 301 https://wengcx.top;	# 若使用http访问则重定向
}

使用

启动

service nginx start
/etc/init.d/nginx

重启

service nginx restart
/etc/init.d/nginx restart


参考:http://www.nginx.cn/doc/
参考:https://www.cnblogs.com/Ray-liang/p/4173923.html
参考:https://blog.csdn.net/m0_37422289/article/details/82997019
SSL配置参考:https://www.cnblogs.com/SemiconductorKING/p/9106971.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值