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 # 下載

第二步:解壓並拷貝到指定目錄

  1. tar -zxvf mongodb-linux-x86_64-4.0.10.tgz# 解壓
  2. 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 =#端口
  4. fork =true#以守護程序的方式啟用,即在后台運行
  5. noauth =true# 不進行安全驗證
  6. #auth=true #需要認證。如果放開注釋,就必須創建MongoDB的賬號,使用賬號與密碼才可遠程訪問,第一次安裝建議注釋
  7. bind_ip=0.0.0.0#允許遠程訪問,或者直接注釋,127.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,關閉服務

  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

  1. yapi server

 第四步:打開瀏覽器界面化配置部署

出現如下信息,則表示部署成功

 第五步:啟動服務器

  1. 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 庫。

  1. yum install -y openssl openssl-devel

 第二步:下載Nginx

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

 第三步:解壓

  1. tar -zxvf nginx-1.15.8.tar.gz
  2. 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-Proxytrue;
  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命令

  1. pm2 start app.js -i max # 根據有效CPU數目啟動最大進程數目
  2. pm2 start app.js -i 3# 啟動3個進程
  3. pm2 start app.js -x #用fork模式啟動 app.js 而不是使用 cluster
  4. pm2 start app.js -x ---a 23# 用fork模式啟動 app.js 並且傳遞參數 (-a 23)
  5. pm2 start app.js --name serverone # 啟動一個進程並把它命名為 serverone
  6. pm2 stop serverone # 停止 serverone 進程
  7. pm2 start app.json # 啟動進程, 在 app.json里設置選項
  8. pm2 start app.js -i max ---a 23#在--之后給 app.js 傳遞參數
  9. pm2 start app.js -i max -e err.log -o out.log # 啟動 並 生成一個配置文件,你也可以執行用其他語言編寫的app ( fork 模式):
  10. pm2 start my-bash-script.sh -x --interpreter bash
  11. pm2 start my-python-script.py -x --interpreter python
  12.  
  13. pm2 start app.js -i 4#后台運行pm2,啟動4個app.js
  14. # 也可以把'max' 參數傳遞給 start
  15. # 正確的進程數目依賴於Cpu的核心數目
  16. pm2 start app.js --name my-api # 命名進程
  17. pm2 list # 顯示所有進程狀態
  18. pm2 monit # 監視所有進程
  19. pm2 logs # 顯示所有進程日志
  20. pm2 stop all # 停止所有進程
  21. pm2 restart all # 重啟所有進程
  22. pm2 reload all # 0秒停機重載進程 (用於 NETWORKED 進程)
  23. pm2 stop 0# 停止指定的進程
  24. pm2 restart 0# 重啟指定的進程
  25. pm2 startup # 產生 init 腳本 保持進程活着
  26. pm2 web # 運行健壯的 computer API endpoint (http://localhost:9615)
  27. pm2 delete0# 殺死指定的進程
  28. pm2 delete all

《轉自:https://www.bbsmax.com/A/x9J2PoOVd6/》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM