这篇帖子是为了提供我自己的July Novel站点的小说数据支撑。解决分布式部署爬虫程序的繁琐过程,由于本人对shell编程并不熟悉,故而先逐步记录操作步骤,通过以下操作达到节省时间的方式。 三个前提: 1.首先是四台云服务器,全部安装Cent OS 7.4, 四台服务器中一台主服务器,三台从服务器,服务器都是刚刚全新安装,并且,主服务器已经安装MariaDB和Redis数据库; 2.其次是客户端连接远程服务器使用的是Xshell,通过Xshell同时打开多个标签页,并且通过撰写栏发送命令,每次发送四台服务器都同时收到指令开始执行; 3.待部署的代码已经躺在github上了。
下面我会逐步交代如何操作
获取管理员权限 sudo -s
1.预装接下来会用到的软件
#gcc编译器
#源码方式安装nginx所需。
yum install gcc gcc-c++
#nginx rewrite 需求
yum install -y pcre-devel
#安装anaconda3 解压需求(貌似Azure的centos云服务器内置了,而Aliyun似乎)
yum install -y zlib-devel
#版本控制,不谈了
yum install -y git
#控制uWSGI停止启动的脚本需要
yum install -y psmisc
#网站上https必备。建议上。
yum install -y openssl openssl-devel
2.编译nginx
mkdir /home/web
mkdir /home/download
cd /home/download
wget https://nginx.org/download/nginx-1.12.2.tar.gz
tar zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
make install
3.安装anaconda3(版本很关键,最新版5.10.1跟我这套配置有点冲突,建议用我这个版本5.0.1)
cd ../
wget https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh
bash Anaconda3-5.0.1-Linux-x86_64.sh
#激活环境变量
source ~/.bashrc
#创建虚拟python环境
conda create --name web
#跳转到新建的web环境下
source activate web
4.clone我的JulyNovel后端源代码
cd /home/web
git clone https://github.com/congjinruo/JulyNovel.git
cd JulyNovel
pip install -r requirements.txt
nginx和uWSGI需求的几个日志文件生成一下
mkdir logs
touch logs/access.log
touch logs/error.log
touch logs/uwsgi.log
5.三个配置文件的单独设置,我把这三份文件详细设置放在我的github README.md上。
#配置nginx
vim /usr/local/nginx/conf/nginx.conf
#配置JulyNovel的MariaDB、Redis、Aliyun OSS的连接方式
vim /home/web/JulyNovel/config.py
#编辑管理uWSGI运行启动的脚本
vim /home/web/manage_uwsgi.sh
6.开启uWSGI和nginx 注意,部分服务器在运行下面命令可能会报错,请将anaconda/lib里的文件用cp命令复制到/lib64文件夹内
uwsgi --ini /home/web/JulyNovel/uwsgiconfig.ini
/usr/local/nginx/sbin/nginx
7.最后,别忘了服务器安全组端口入站规则开启。