交代背景 這篇帖子是為了提供我自己的July Novel站點的小說數據支撐。解決分散式部署爬蟲程式的繁瑣過程,由於本人對shell編程並不熟悉,故而先逐步記錄操作步驟,通過以下操作達到節省時間的方式。 三個前提: 1.首先是四台雲伺服器,全部安裝Cent OS 7.4, 四台伺服器中一臺主伺服器,三 ...
交代背景
這篇帖子是為了提供我自己的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
uwsgi --ini /home/web/JulyNovel/uwsgiconfig.ini
/usr/local/nginx/sbin/nginx
7.最後,別忘了伺服器安全組埠入站規則開啟。