写在前面:
1.af_erp通过ansible和supervisord来重启和管理进程
2.前端nginx + uwsgi
3.af_erp测试环境和正式环境都在sanbox机器,只是代码放在不同的目录下
4.前端主要使用bootstrap,所需的css和js库基本都是从http://cdn.bootcss.com或者http://libs.useso.com/ 获取,本地不保存
5.mysql是本机的
6.版本:
sqlalchemy.version == ‘1.0.4’
jinja2.version == ‘1.0.4’
cherrypy.version == ‘3.7.0’
版本比较新,有很多新的功能和特性直接使用,和咱们之前af_web中的用法不一样, 很多用法比老版本的简单.
正式环境
1.代码路径
/var/server/af_erp
2. restart
cd /var/server/ansible
ansible-playbook af_erp.yml
或者
cd /var/server/ansible
ansible-playbook af_erp_simple.yml
af_erp.yml 是ansible完整的配置文件,会检查sqlalchemy等依赖的版本,
af_erp_simple.yml 是简单的更新代码,重启。比af_erp.yml快
3. nginx conf
erp.appflood.ml配置文件路径
/etc/nginx/sites-enabled/erp.appflood.ml
配置解释
server {
listen 80;
server_name erp.appflood.ml;
location ~ ^.*\.(js|css)$ {
root /var/server/af_erp/static/; //静态文件路径
}
location ~*\.(csv|xlsx)$ {
root /tmp/; //生成csv和xlsx的默认路径,在/tmp下
}
location / {
proxy_pass http://localhost:1234/; //uwsgi 启在1234端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_buffering off;
proxy_http_version 1.1; //支持http 1.1
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
4.supervisor conf
路径
/var/server/sandbox_devops/supervisor/conf.d/af_erp.conf
配置解释
[program:af_erp]
user=ubuntu
directory=/var/server/af_erp //代码路径
command=blueware-admin run-program uwsgi --http :1234 --master --processes 4 --wsgi-file wsgi.py //uwsgi启动命令
environment = BLUEWARE_CONFIG_FILE=blueware.ini //blueware性能监控
autostart=true
autorestart=true
priority=300
stdout_logfile=/var/log/supervisor/af_erp.log //这里面是uwsgi输出的af_erp的log和error log
redirect_stderr=true
stopsignal=INT
开发环境:
1.开发也使用nginx,访问域名erp-test.appflood.ml,配置文件路径为
/etc/nginx/sites-enabled/erp-test.appflood.ml
2.直接使用uwsgi启,没用ansible和supervisord
uwsgi --http 127.0.0.1:9000 --wsgi-file wsgi.py --honour-stdin --process 10 -M