作者:E4b9a6, 创建:2022-01-11, 字数:1826, 已阅:111, 最后更新:2022-01-11
在部署SyncMemo时采用了uwsgi+supervisor的形式进行部署
uwsgi采用配置文件形式,如下
[uwsgi]
module = main:app
master = true
processes = 1
chdir = /srv/memo/SyncMemo/src/
socket = /srv/memo/uwsgi.sock
chmod-socket = 660
vacuum = true
die-on-term = true
supervisor配置如下
[program:memo]
# directory=/opt/blog/src/
command=/var/www/.local/bin/uwsgi --ini /srv/memo/uwsgi.ini
autostart=true
autorestart=true
startsecs=10
stdout_logfile=/var/log/supervisor/memo_stdout.log
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/var/log/supervisor/memo_stderr.log
stderr_logfile_maxbytes=10MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
user=apps
在SyncMemo的APP入口处,使用了“argparse”来解析传递的config参数,方便识别app.conf文件的路径
from configparser import ConfigParser
from flask_caching import Cache
import sys
import os
import argparse
CONST_VERSION = 'V1.2.0'
CONST_ARGS_CACHE_NAME = 'CONST_ARGS_CACHE_NAME'
parser = argparse.ArgumentParser(description='Syncmemo for argparse')
parser.add_argument('--config', '-c', help='配置文件路径', default='config.ini')
args = parser.parse_args()
configparser = ConfigParser()
if not os.path.exists(args.config):
print("配置文件%s不存在!请检查配置文件" % args.config)
sys.exit()
configparser.read(args.config, encoding='utf-8')
app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False
开发时启动方式如下
python3 SyncMemo/src/main.py --config=SyncMemo/conf/app.conf
相应的,开发采用uwsgi部署的时候,uwsgi也提供类似的参数用于传递参数,在uwsgi的配置文件中增加“pyargv”参数用于传递app.conf的位置
[uwsgi]
module = main:app
master = true
processes = 1
pyargv=-c /srv/memo/SyncMemo/conf/app.conf
chdir = /srv/memo/SyncMemo/src/
socket = /srv/memo/uwsgi.sock
chmod-socket = 660
vacuum = true
die-on-term = true