zoukankan      html  css  js  c++  java
  • CentOS 傻瓜式部署uWSGI + nginx + flask

    交代背景

    这篇帖子是为了提供我自己的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.最后,别忘了服务器安全组端口入站规则开启。

  • 相关阅读:
    MacOS下保护浏览器主页和默认搜索
    Tokyo Tyrant(TTServer)系列(一)-介绍和安装
    四:二叉树的镜像递归非递归求解
    Android 异常 android.os.NetworkOnMainThreadException
    Android开发学习之路--传感器之初体验
    Xcode真机调试失败:The identity used to sign the executable is no longer valid
    hdu 3068 最长回文(manacher&最长回文子串)
    bzoj1030【JSOI2007】文本生成器
    HDU2082母函数模板题
    Oracle数据库远程连接配置教程
  • 原文地址:https://www.cnblogs.com/jiajin/p/8507083.html
Copyright © 2011-2022 走看看