轉載自 https://www.linuxidc.com/Linux/2018-01/150513.htm
在mongoDB添加yum源時,源路徑有修改,原文中的路徑404不可用
二、部署nodejs
部署nodejs盡可能選擇偶數版本,因為偶數版本官方有較長的維護時間,故這次選擇8.x。
# 獲取資源
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
# 安裝
yum install -y nodejs
# 查看node版本
node -v
# 查看npm版本
npm -v

三、部署mongodb
mongodb裝的是2.6
3.1 添加yum源
# 修改文件mongodb.repo
vim /etc/yum.repos.d/mongodb.repo
添加下面的內容,wq保存。
[mongodb-org] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck= 0 enabled=1
3.2 安裝
yum install -y mongodb-org
3.3 禁用selinux
官方教程有提到selinux對mongodb會產生負面影響,故選擇禁用。
# 修改config文件
vim /etc/selinux/config
將SELINUX=enforcing改為SELINUX=disabled,wq保存。
# 重啟OS
reboot
3.4 關閉防火牆
由於需要做數據遷移,所以直接省事將防火牆直接關了。
# 關閉,並取消開機啟動
systemctl stop firewalld systemctl disable firewalld
3.5 啟動
systemctl start mongod
四、部署YApi
4.1 安裝
npm install -g yapi-cli --registry https://registry.npm.taobao.org yapi server
根據提示,瀏覽器訪問 http://部署YApi服務器的IP:9090。
填寫完信息后,點擊“開始部署”。(大概等待1分鍾)
# 退出當前狀態
CTRL + C
4.2 修改配置
這里我們不急着根據提示進行啟動,有些參數我們可以通過修改配置達到。
# 修改config.json
vim /root/my-yapi/config.json
修改下面的內容(我用的qq郵箱,不同的郵箱host,port有所不同),wq保存。
{ "port": "80", // 可不改,80是http協議的默認端口,這樣修改訪問時可以不輸入ip.不改則用3000端口訪問 "adminAccount": "yizitadmin@yizit.cn", "db": { "servername": "127.0.0.1", "DATABASE": "yapi", "port": "27017" }, "mail": { "enable": true, "host": "smtp.qq.com", "port": 465, "from": "可用於發送郵件的郵箱", "auth": { "user": "郵箱", "pass": "郵箱對應的密碼或授權碼" } } }
4.3 啟動
# 切換到部署目錄下
cd /root/my-yapi
# 啟動服務
node vendors/server/app.js
由於修改了配置,所以直接訪問 http://部署YApi服務器的IP/login。
(ps:沒有進行4.2修改配置的話是訪問http://部署YApi服務器的IP:3000/login)
五、部署Supervisor
Supervisor是守護進程服務,在沒有守護進程之前存在一些問題:
- 應用程序運行在當前終端發起的子shell中,hangup信號中斷后會導致應用退出,我們不可能在長期使用的環境中用一個終端去做長連接。
- 當服務器重啟后,還是需要人工連上服務器啟動服務。
- 進程出現意外終止,等人為發現再連上去開啟,這樣的反應顯然已經慢了。
5.1 安裝
yum install python-setuptools -y easy_install supervisor
5.2 修改配置
# 創建目錄/etc/supervisor
mkdir /etc/supervisor
# 創建supervisord.conf模板文件
echo_supervisord_conf > /etc/supervisor/supervisord.conf
# 修改文件supervisord.conf
vim /etc/supervisor/supervisord.conf
增加下面的內容,wq保存。
[include] files = conf.d/*.conf
如果服務已啟動,修改配置文件可用“supervisorctl reload”命令來使其生效)
# 創建目錄/etc/supervisor/conf.d/
mkdir -p /etc/supervisor/conf.d/
# 修改文件YApi.conf
vim /etc/supervisor/conf.d/YApiGhost.conf
增加下面的內容,wq保存。
[program: YApiGhost] command=node vendors/server/app.js ; 運行程序的命令 directory=/root/my-yapi ; 命令執行的目錄 autorestart=true ; 程序意外退出是否自動重啟 stderr_logfile=/var/log/YApiGhost.err.log ; 錯誤日志文件 stdout_logfile=/var/log/YApiGhost.out.log ; 輸出日志文件 environment=ASPNETCORE_ENVIRONMENT=Production ; 進程環境變量 user=root ; 進程執行的用戶身份 stopsignal=INT
5.3 啟動
# 根據supervisord.conf啟動守護進程
supervisord -c /etc/supervisor/supervisord.conf
# 查看進程
ps -ef | grep YApiGhost
如果存在YApiGhost 進程則代表運行成功。
5.4 設置為開機啟動
# 修改文件supervisord.service
vim /usr/lib/systemd/system/supervisord.service
添加下面的內容,wq保存。
[Unit] Description=Supervisor daemon [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf ExecStop=/usr/bin/supervisorctl shutdown ExecReload=/usr/bin/supervisorctl reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target
# 開機啟動
systemctl enable supervisord
參考資料:
1.https://github.com/YMFE/yapi
2.http://www.linuxidc.com/Linux/2018-01/150512.htm
3.https://github.com/nodesource/distributions#rpm
5.https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
本文永久更新鏈接地址:http://www.linuxidc.com/Linux/2018-01/150513.htm