生产环境¶
1. 安装¶
- 下载程序
通过 https://github.com/seecode-audit/seecode-audit/releases 下载最新版本。 解压安装的 zip 包,这里安装在 /usr/local/seecode-audit/ 路径下。
$ sudo unzip seecode-audit.zip -d /usr/local/seecode-audit/
- 安装依赖包
$ pip isntall -r requirements/dev.txt
$ pip install https://github.com/seecode-audit/seecode-scanner/archive/1.0.0.zip
2. 配置¶
2.1 配置 seecode.yml¶
编辑 /etc/seecode.yml 文件,请确认所有环境变量中都使用 DJANGO_SETTINGS_MODULE=seecode.settings.prod
。
mysql:
default:
host: 10.168.1.2
port: 3306
username: "seecode_db"
password: "*****************"
database: "seecode_db_ce"
slave:
host: 10.168.1.3
port: 3306
username: "seecode_db"
password: "*****************"
database: "seecode_db_ce"
redis:
host: 10.168.1.1
port: 6379
db: 1
password: "*****************"
memcached:
host:
172.19.26.1:11211
172.19.26.2:11211
172.19.26.3:11211
172.19.26.4:11211
username: seecode
password: "*****************"
celery:
celery_broker_url: ""
env:
SEECODE_CELERY_BROKER_URL: "redis://:*****************@10.168.1.4:6379/8"
SEECODE_C_FORCE_ROOT: False
- 数据库
数据库默认使用 MySQL,部署方式读写分离。default 节点用于写入,slave 节点用于读取。
- 缓存
- redis
使用 Redis 用于缓存。
- memcached
使用 emcached 用于缓存。
- Celery
- celery
该节点为中的 celery 配置,用于 seecode-audit 的 Gitlab 的队列。
- env
用于设置 eecode Audit 的环境变量,默认设置了 seecode-scanner 使用的环境变量。
2.2 配置 Nginx¶
创建 /etc/nginx/conf.d/seecode.conf 文件,需要注意 server_name、static、proxy_pass 的正确设置。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name seecode-audit.com; # domain
location /static {
alias /usr/local/seecode-audit/seecode/templates/static;
}
location / {
proxy_pass http://127.0.0.1:1768;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 75s;
proxy_read_timeout 600s;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
2.3 配置 gunicorn¶
编辑 seecode/gunicorn.conf.py 文件内容。 配置 /etc/supervisord.conf 设置, 注意 /etc/directory 与 /usr/local/bin/gunicorn 中的路径是否设置正确。
[program:gunicorn]
directory=/usr/local/seecode-audit
environment=DJANGO_SETTINGS_MODULE=seecode.settings.prod
command=/usr/local/bin/gunicorn seecode.wsgi:application -c /usr/local/seecode-audit/seecode/gunicorn.conf
.py --timeout 600
autorestart=true
2.4 配置 Celery¶
注意 directory 与 /usr/local/bin/celery 中的路径是否正确
[program:celery-beat]
directory=/usr/local/seecode-audit
environment=DJANGO_SETTINGS_MODULE=seecode.settings.prod
command=/usr/local/bin/celery -A seecode.celeryctl.celery_app beat -l info -Q gitlab
autorestart=true
3. 运行¶
确保 supervisord.conf 中的配置项与服务器配置的路径一致:
$ supervisord -c /etc/supervisord.conf >/dev/null 2>&1 &