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