方法一:修改python文件后立刻生效
在uwsgi的配置文件(我的uwsgi配置文件在项目根目录/root/app/test/uwsgi.ini)
增加:
py-autoreload=1
保存后让uwsgi服务重启生效即可,以后修改python文件都会立刻生效。
方法二、配置uwsgi,让重启uwsgi服务更方便
背景:我的项目在/root/app/test ,uwsgi配置文件uwsgi.ini在/root/app/test里
(uwsgi的配置可以看我的文章《腾讯云Centos7 从零开始安装Python3 Flask框架,并配置uWSGI+nginx》)
1、创建uwsgi文件夹和相关文件
创建uwsgi文件夹
mkdir -p /root/app/test/uwsgi
cd /root/app/test/uwsgi
创建uwsgi.pid,并保存退出
vi uwsgi.pid
创建uwsgi.status,并保存退出
vi uwsgi.status
touch uwsgi.pid
touch uwsgi.status
说明:uwsgi.pid文件用来重启和停止uwsgi服务,uwsgi.status用来查看uwsgi的服务状态
2、修改uwsgi配置文件
修改uwsgin.ini配置文件,添加pid文件和status文件的配置
stats=%(chdir)/uwsgi/uwsgi.status
pidfile=%(chdir)/uwsgi/uwsgi.pid
保存退出
3、启动uwsgin配置文件
完成配置后,可以用如下命令操作uwsgi服务
uwsgi --ini uwsgi.ini
如果uwsgi已经启动,无法再次启动,可以尝试杀死进程或者重启服务器(我使用的是重启服务器的方法)
执行完成后,查看uwsgi的pid号
cat uwsgi/uwsgi.pid
查看一下uwsgi的进程
ps aux | grep uwsgi
发现主进程的pid与我们的pid文件里存的是一样的
到此就可以使用重启、停止uwsgi服务了
重启uwsgi
uwsgi --reload uwsgi/uwsgi.pid
停止uwsgi
uwsgi --stop uwsgi/uwsgi.pid
停止uwsgi服务后,用ps命令查看uwsgi的进程发现已经不存在了
开启uwsgi
uwsgi --ini uwsgi.ini
uwsgi进程和worker的状态很详细
uwsgi --connect-and-read uwsgi/uwsgi.status
到此配置完成,python文件修改后可以重启uwsgi服务来生效。
一、Python环境搭建
Python 环境
# Ubuntu18.04 python默认版本2.7 和3.6.9
# 项目Python版本为3.6.9
1.验证:
python -V
python3 -V2.指定的python安装pip命令
1.# 查看pip版本及对应的python
pip -V
2.# 若没有,安装pip
sudo apt-get update
sudo apt-get upgrade
apt install python3-pip
3.# 测试
pip3 list
4.# 升级pip
sudo pip3 install --upgrade pip
# 升级对应环境的 pip
python -m pip install --upgrade pip
5.# 如果报错:
vi /usr/bin/pip3
将源文件
from pip import main
if __name__ == '__main__':
sys.exit(main())
修改为:
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__.main())
wq 保存退出
测试:pip3 list3.安装虚拟环境
1.# 为python3安装虚拟环境
sudo apt install python3-venv
2.# 创建一个村发放虚拟环境的目录
cd /home
mkdir venv_folder
3.# 创建虚拟环境
cd venv_folder
python3 -m venv venv_name
4.# 激活并进入该虚拟环境
source venv_folder/bin/activate4.安装nginx
1. # 安装
sudo apt install nginx
2. # 启动验证
service nginx start # 启动nginx
service nginx reload # 重新加载nginx配置文件
nginx -s reopen # 重启 Nginx
nginx -s stop # 停止 Nginx
nginx - V # 查看版本号5.配置nginx
1. # 配置nginx 并替换default文件
cd /etc/nginx/sites-available/
cp default xxx
vi default
2. # 配置
server {
listen 80;
server_name elmjst.xxxx.com;
return 301 https://elmjst.xxxx.com$request_uri;
}
server {
listen 443;
server_name elmjst.jijips.com;
ssl on;
ssl_certificate /etc/nginx/cert/elmjst.jijips.com.pem;
ssl_certificate_key /etc/nginx/cert/elmjst.jijips.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5000;
proxy_set_header Host $host;
root /root/front_end;
index /index.html;
try_files $uri $uri/ /index.html;
}
}
3. # 启动
sudo nginx -c /etc/nginx/nginx.conf
4. # 日志
cat /var/log/nginx/error.log
cat /var/log/nginx/access.log5.安装Uwsgi
1. # 安装
sudo pip3 install uwsgi
2. # cd 到项目启动文件的根目录,新建文件 uwsgi.ini,添加相应配置
[uwsgi]
module = start_file_name:app
master = true
processes = 6
chdir = /root/xxx/
socket = /root/xxx/log/pro.sock
socket = 127.0.0.1:8080
logto = /root/xxx/log/uwsgi.log
chmod-socket = 660
vacuum = true
buffer-size = 8192
3. # 启动
uwsgi --ini ./uwsgi.ini &6.停止项目
sudo pkill -f nginx -9
sudo pkill -f uwsgi -9