• Linux服务部署Yapi项目(安装Node Mongdb Git Nginx等)


    Linux服务部署Yapi

    一,介绍与需求

     1,我的安装环境:CentOS7+Node10.13.0+MongoDB4.0.10。

     2,首先安装wget,用于下载node等其他工具

    1 yum install -y wget

     编译依赖 gcc 环境

    1 yum install gcc-c++

    二,Node安装配置

    第一步:下载Node

    1 wget https://nodejs.org/dist/v10.13.0/node-v10.13.0-linux-x64.tar.xz

    第二步:解压下载的Node包

    1 xz -d node-v10.13.0-linux-x64.tar.xz
    2 tar -xf node-v10.13.0-linux-x64.tar

    第三步:配置node和npm

    注意:node所在目录,我的node目录是~/node-v10.13.0-linux-x64 即在:登录的root目录下

    1 ln -s ~/node-v10.13.0-linux-x64/bin/node /usr/bin/node
    2 ln -s ~/node-v10.13.0-linux-x64/bin/npm /usr/bin/npm

    第四步:检测是否成功

    输入node -v 和 npm -v,如果看到版本号,即表示成功 如下图所示:

    三,Mongdb安装配置

     第一步:下载Mongodb

    1 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.10.tgz    # 下载

    第二步:解压并拷贝到指定目录

    tar -zxvf mongodb-linux-x86_64-4.0.10.tgz                                   # 解压
    mv  mongodb-linux-x86_64-4.0.10/ /usr/local/mongodb                         # 将解压包拷贝到指定目录

    第三步:配置系统环境变量

    vim  /etc/profile

    会提示文件已存在,输入“e”,回车,然后键盘按下“i” ,进入编辑模式即可。在文件的最后加上:

    #mongodb
    export PATH=$PATH:/usr/local/mongodb/bin

    第四步:创建MongoDB数据存放文件夹和日志记录文件夹

    1 mkdir -p  /data/db
    2 mkdir -p /logs

    第五步:创建MongoDB运行时使用的配置文件

    1,进入bin目录下:cd  /usr/local/mongodb/bin

    2,创建mongodb.conf配置文件:vim mongodb.conf

    会提示是new file,直接输入下面内容:

    1 dbpath = /data/db #数据文件存放目录
    2 logpath = /logs/mongodb.log #日志文件存放目录
    3 port = 27017 #端口
    4 fork = true #以守护程序的方式启用,即在后台运行
    5 noauth = true # 不进行安全验证
    6 #auth=true #需要认证。如果放开注释,就必须创建MongoDB的账号,使用账号与密码才可远程访问,第一次安装建议注释
    7 bind_ip=0.0.0.0 #允许远程访问,或者直接注释,127.0.0.1是只允许本地访问

    最后“Esc”,按下“:”,输入“wq”保存退出vim编辑模式即可。注意:注释符号#和数据之间必须是一个空格。

    第六步:启动MongoDB服务

    1,进入bin目录下:cd  /usr/local/mongodb/bin

    2,加载配置文件方式启动:./mongod  -f  mongodb.conf

    即:MongoDB在Linux上的安装完毕

    第七步:检测是否启动成功

    查看端口映射检查是否启动成功:netstat -nltp|grep mongod 

    如出现以上信息,则表示启动成功

    其他常用命令

    1,关闭服务

    ./mongod  --shutdown
    1 pkill mongod

    直接关掉进程

    查看pid:ps -ef | grep mongo   结果的第二列就是pid

    kill  -9  pid 强制杀死 不建议使用 可能会导致数据丢失

    创建Mongodb账号

    进入bin目录下: cd  /usr/local/mongodb/bin

    运行mongo命令:mongo

    四,Git安装配置

      第一步:下载Git

    1 wget https://github.com/git/git/archive/v2.14.1.zip

     第二步:安装依赖

    1 yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

     第三步:解压

    1 unzip v2.14.1.zip

     第四步:将git安装到/usr/local/git上

    先进入git-2.14.1文件夹, 编译,安装

    cd git-2.14.1

    make prefix=/usr/local all

    make prefix=/usr/local install

     第五步:验证是否安装完成

    1 git --version

    看到版本号,即表示安装成功

    五,Yapi部署

     第一步:安装

    1 npm install -g yapi-cli --registry https://registry.npm.taobao.org

     第二步:配置yapi

    1 ln -s ~/node-v10.13.0-linux-x64/bin/yapi /usr/bin/yapi

     第三步:启动配置

    如果不进行第二步,配置,可能会找不到yapi

    yapi server

     第四步:打开浏览器界面化配置部署

    出现如下信息,则表示部署成功

     第五步:启动服务器

    node vendors/server/app.js

    出现如下信息,则表示启动成功

    在浏览器输入:http://127.0.0.1:3000/ 界面如下:

    六,Nginx安装配置反向代理

     第一步:安装所需环境

    1,PCRE pcre-devel 安装

    PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:

    1 yum install -y pcre pcre-devel

    2,zlib 安装

    zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

    1 yum install -y zlib zlib-devel

    3,OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
    nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

    yum install -y openssl openssl-devel

     第二步:下载Nginx

    1 wget -c https://nginx.org/download/nginx-1.15.8.tar.gz

     第三步:解压

    tar -zxvf nginx-1.15.8.tar.gz
    cd nginx-1.15.8

     第四步:配置

    1,使用默认配置

    1 ./configure

    2.自定义配置(不推荐)

     1 ./configure 
     2 --prefix=/usr/local/nginx 
     3 --conf-path=/usr/local/nginx/conf/nginx.conf 
     4 --pid-path=/usr/local/nginx/conf/nginx.pid 
     5 --lock-path=/var/lock/nginx.lock 
     6 --error-log-path=/var/log/nginx/error.log 
     7 --http-log-path=/var/log/nginx/access.log 
     8 --with-http_gzip_static_module 
     9 --http-client-body-temp-path=/var/temp/nginx/client 
    10 --http-proxy-temp-path=/var/temp/nginx/proxy 
    11 --http-fastcgi-temp-path=/var/temp/nginx/fastcgi 
    12 --http-uwsgi-temp-path=/var/temp/nginx/uwsgi 
    13 --http-scgi-temp-path=/var/temp/nginx/scgi

    注意:将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录

     第五步:编译安装

    1 make
    2 make install

     第六步:查看安装目录

    1 whereis nginx

     第七步:配置反向代理

      修改配置文件nginx.config

    1 cd /usr/local/nginx/conf
    2 vim nginx.conf

    在配置文件中添加反向代理,YApi页面使用websocket, 所以,nginx配置需要支持ws:

     1 upstream yapi {
     2   server 127.0.0.1:3000 weight=5;
     3 }
     4 
     5 server {
     6     listen       80;
     7     server_name  localhost www.yapi.top;
     8     #charset koi8-r;
     9     #access_log  logs/host.access.log  main;
    10 
    11     location / {
    12       proxy_pass  http://yapi;
    13       proxy_set_header Host $host;
    14       proxy_set_header  X-Real-IP        $remote_addr;
    15       proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
    16       proxy_set_header X-NginX-Proxy true;
    17       proxy_set_header Connection "upgrade";
    18       proxy_set_header Upgrade $http_upgrade;
    19     }
    20 }

     第八步:启动Nginx

    1 cd /usr/local/nginx/sbin/
    2 ./nginx 

    效果如下:

    其他常用命令与介绍

    ./nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。
    ./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。

    查询nginx进程:

    1 ps aux|grep nginx

    1.先停止再启动(推荐):
    对 nginx 进行重启相当于先停止再启动,即先执行停止命令再执行启动命令。如下:

    1 ./nginx -s quit
    2 ./nginx

    2.重新加载配置文件:
    当 ngin x的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用-s reload不用先停止 ngin x再启动 nginx 即可将配置信息在 nginx 中生效,如下:

    1 ./nginx -s reload

    3.开机自启动

    即在rc.local增加启动代码就可以了。

    1 vim /etc/rc.local

    增加一行 /usr/local/nginx/sbin/nginx
    设置执行权限:

    1 chmod 755 rc.local

    七,遇到的问题

     7.1,问题:使用Xshell启动服务,当关闭Xshell,服务也随之关闭

    解决办法:使用pm2部署

    第一步:安装pm2

    1 npm install -g pm2

    第二步:配置连接pm2

    1 ln -s ~/node-v10.13.0-linux-x64/bin/pm2 /usr/bin/pm2

    第三步:在项目添加配置文件processes.json

    processes.json文件可自定义

    添加如下内容

     1 {
     2   "apps" : [{
     3     "name" : "YingQi",
     4     "script": "./server/app.js",
     5     "cwd": "./",
     6     "watch":[
     7         "server",
     8         "static",
     9         "test",
    10         "exts",
    11         "common"
    12     ]
    13     }]
    14 }

    第四步:在项目目录下运行开启进程即可

    1 pm2 start processes.json

    出现如下信息,则表示开启成功

    这样问题就基本解决啦!

    其他常用pm2命令

    pm2 start app.js -i max  # 根据有效CPU数目启动最大进程数目
    pm2 start app.js -i 3      # 启动3个进程
    pm2 start app.js -x        #用fork模式启动 app.js 而不是使用 cluster
    pm2 start app.js -x -- -a 23   # 用fork模式启动 app.js 并且传递参数 (-a 23)
    pm2 start app.js --name serverone  # 启动一个进程并把它命名为 serverone
    pm2 stop serverone       # 停止 serverone 进程
    pm2 start app.json        # 启动进程, 在 app.json里设置选项
    pm2 start app.js -i max -- -a 23                   #在--之后给 app.js 传递参数
    pm2 start app.js -i max -e err.log -o out.log  # 启动 并 生成一个配置文件,你也可以执行用其他语言编写的app  ( fork 模式):
    pm2 start my-bash-script.sh    -x --interpreter bash
    pm2 start my-python-script.py -x --interpreter python
    
    
    pm2 start app.js -i 4 #后台运行pm2,启动4个app.js 
                                  # 也可以把'max' 参数传递给 start
                                  # 正确的进程数目依赖于Cpu的核心数目
    pm2 start app.js --name my-api # 命名进程
    pm2 list               # 显示所有进程状态
    pm2 monit              # 监视所有进程
    pm2 logs               #  显示所有进程日志
    pm2 stop all           # 停止所有进程
    pm2 restart all        # 重启所有进程
    pm2 reload all         # 0秒停机重载进程 (用于 NETWORKED 进程)
    pm2 stop 0             # 停止指定的进程
    pm2 restart 0          # 重启指定的进程
    pm2 startup            # 产生 init 脚本 保持进程活着
    pm2 web                # 运行健壮的 computer API endpoint (http://localhost:9615)
    pm2 delete 0           # 杀死指定的进程
    pm2 delete all 
  • 相关阅读:
    Image Processing and Analysis_8_Edge Detection:Finding Edges and Lines in Images by Canny——1983
    2019年C题 视觉情报信息分析
    Image Processing and Analysis_8_Edge Detection:Theory of Edge Detection ——1980
    Computer Vision_2_Active Shape Models:Active Shape Models-Their Training and Application——1995
    Computer Vision_1_Active Appearance Models:Active Appearance Models——2001
    Computer Vision_1_Active Appearance Models :Active Appearance Models——1998
    这群程序员疯了!他们想成为IT界最会带货的男人
    阿里云视频云正式支持AV1编码格式 为视频编码服务降本提效
    Knative Serverless 之道:如何 0 运维、低成本实现应用托管?
    千呼万唤始出来——DataV私有部署功能
  • 原文地址:https://www.cnblogs.com/jackson-yqj/p/11043770.html
Copyright © 2020-2023  润新知