ctfd平台的搭建和优化
搭建环境
本次环境搭建使用的是腾讯云的学生机(1核2G,1M带宽),ubuntu16.04 64位。
开始搭建
1.安装git
sudo apt-get install git
2.安装pip
sudo apt-get install python-pip
3.安装Flask
sudo pip install Flask
4.下载CTFd
我下载在ubuntu的家目录下
sudo git clone https://github.com/CTFd/CTFd
5.安装CTFd
cd CTFd
sudo ./prepare.sh
6.修改CTFd
执行完第5步后所需的依赖应该都已经安装好了。先别急着运行CTFd。先修改CTFd/config.py文件,对数据库进行相关的设置(这里以MYSQL为例)
格式为mysql+pymysql://root:数据库密码@localhost/你创建的数据库名字
7.mysql设置
关于mysql的安装请大家自行google
进入mysql,新建一个ctfd数据库
create database ctfd;
exit;
8.运行CTFd
9.设置ctfd数据库字段,防止字符乱码
再次进入mysql数据库,输入下面的命令:
1 | use ctfd; |
10.开始运行
sudo python serve.py
部署
1.gunicorn部署
1 | 1、pip install gunicorn |
但是这样运行起来性能还是不好,所以我采用了nginx+uwsgi的方法来提高性能
2.nginx和uwsgi部署
安装nginx和uwsgi
1 | 1.apt-get install nginx |
在/etc/nginx/sites-enabled/site
中删除default
,新建site
文件,配置如下
1 | server { |
然后把site软链接到/etc/nginx/sites-available/site
下,或者把文件copy到/etc/nginx/sites-available/site
下
之后进入~/CTFd目录,运行
uwsgi -s /tmp/uwsgi.sock --chmod-socket=666 -w 'CTFd:create_app()'
然后在浏览器访问你的公网IP,应该就OK了。
遇到的坑
坑1
uwsgi -i xxx.ini时候出现了!!! no internal routing support, rebuild with pcre support !!!
这是因为pip缓存的坑,具体内容可以参考pip 缓存坑
解决:1.pip uninstall uwsgi
2.sudo apt-get install libpcre3 libpcre3-dev
3.pip install uwsgi --no-cache-dir
优化
1.nginx反向代理,开启多个个进程去代理,可惜我是学生机,只有1核啊!!
2.把静态文件目录地址添加到到nginx配置中
3.云服务器的话可以考虑CDN加速
4.redis缓存配置,可惜我不会。。
暂时就这些吧,有空再进一步研究如何优化!
##