记录关于uwsgi搭建ctfd平台的方式,以及如何优化速度的方法。
人生苦短我用python
0x01 准备环境
阿里云Ubuntu服务器
已经默认将源为阿里源
更新1
2apt update
apt upgrade
默认安装python3.5。下载pip3,更新pip3版本1
2apt install python3-pip
pip3 install --upgrade pip
此时pip报错from pip import main
,更改pip3源码
1 | sudo vim /usr/bin/pip3 |
将原来的1
2
3from pip import main
if __name__ == '__main__':
sys.exit(main())
修改为,注意__为两个下划线。1
2
3from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
下载ctfd源码,到home下的all路径
1 | cd /home/ |
0x02 测试搭建
进入到CTFd的路径下,安装requirements.txt包。1
pip3 insyall -r requirements.txt
使用python3运行serve.py
1 | python3 serve.py |
不报错,此时为本地127网段4000端口,想要发布到公网需要修改为0.0.0.0
默认访问公网ip加端口4000,便能登录ctfd网站。
当然这样的启动方式是不友好的,首先python启动flask是单线程的,flask中gun服务性能非常低。所能承受的压力非常小,对服务器而言造成资源浪费。其次当服务宕机时,不能快速重启。
下面进行简单优化配置
0x03 使用uwsgi配置
uwsgi的好处xxx
下载uwsgi服务1
2