CentOS 傻瓜式部署uWSGI + nginx + flask

  • 2019 年 10 月 5 日
  • 筆記

交代背景

这篇帖子是为了提供我自己的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上。

JulyNovel Github

#配置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.最后,别忘了服务器安全组端口入站规则开启。