一、阿里云服務器從購買到部署 nodejs+vue

YiYaYiYaHei  IP屬地: 廣東
1字數 1,204

最近在學習微信小程序,就順便想了解下上線的那套部署流程~
服務器:阿里云 ECS共享型 n4云服務器
后端:NodeJs
數據庫:MySQL
前端:Vue

一、服務器購買與搭建MySQL

1.1 服務器購買

圖1-1:服務器一般有阿里云,百度云,騰訊云,各自選擇即可,我這里選擇阿里云

圖1-1

圖1-2:購買成功后,可以在“管理控制臺中”看到
圖1-2

圖1-3

1.2 連接服務器

連接的方式有很多種,這里以阿里云網頁連接為列,還有Xshell軟件
密碼重置與遠程連接(端口默認22)

圖1-3

圖1-4

至此,服務器連接成功。

1.3 CentOS-8安裝mysql-8.0

  1. 通過以root用戶使用CentOS軟件包管理器來安裝MySQL 8.0服務器:
    sudo dnf install @mysql
    圖1-5

    會自動下載,下載完畢后,直接啟動mysql服務
  2. 啟動mysql服務
    systemctl start mysqld.service
    圖1-6
  3. 登錄mysql
    mysql -u root -p
    圖1-7

    圖1-8
  4. 修改mysql密碼
    ALTER USER 'root'@'localhost' IDENTIFIED BY '密碼';
    圖1-9
  5. 創建遠程訪問
CREATE USER 'root'@'%' IDENTIFIED BY '你設置的密碼';
GRANT ALL ON *.* TO 'root'@'%';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你設置的密碼';
圖1-10
  1. 訪問
    關閉防火墻 或者 開啟我們的3306端口就可以進行訪問了
# 查看firewall服務狀態
systemctl status firewalld

# 開啟、重啟、關閉、firewalld.service服務
# 開啟
service firewalld start
# 重啟
service firewalld restart
# 關閉
service firewalld stop

# 查看防火墻規則
firewall-cmd --list-all    # 查看全部信息
firewall-cmd --list-ports  # 只看端口信息

# 開啟端口
開端口命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
重啟防火墻:systemctl restart firewalld.service

命令含義:
--zone #作用域
--add-port=80/tcp  #添加端口,格式為:端口/通訊協議
--permanent   #永久生效,沒有此參數重啟后失效

關閉防火墻(不建議)

systemctl stop firewalld.service

開啟端口(建議)

firewall-cmd --zone=public --add-port=3306/tcp --permanent
圖1-11

成功之后我們需要重啟我們的防火墻

systemctl restart firewalld.service
圖1-12

然后就可以連接啦~


圖1-13

如果不行,檢查下阿里云服務器MySQL是否開啟了遠程訪問(見1.4)

1.4 阿里云服務器MySQL開啟遠程訪問

上一步連接成功的,可以跳過此步~
登錄阿里云進入控制臺,依次訪問 實例 ->(升降配下的)更多 -> 網絡和安全組 -> 安全組配置 -> 配置規則

圖1-14

圖1-15

圖1-16

二、部署后端包(nodejs)

2.1 安裝 nodejs

在 node 官網上下載對應的安裝包,上傳到服務器并解壓,我把安裝包放在 /usr/local/lib/nodejs 下,執行以下5句

# 創建nodejs文件夾,并上傳nodejs壓縮包
mkdir /usr/local/lib/nodejs
# 解壓nodejs壓縮包
tar -xzvf /usr/local/lib/nodejs/node-v12.12.0-linux-x64.tar.gz -C /usr/local/lib/nodejs
# 重命名為node-v12.12.0
mv /usr/local/lib//nodejs/node-v12.12.0-linux-x64  /usr/local/lib/nodejs/node-v12.12.0
# 建立軟連接  在 bin 下創建 node、npm快捷方式,方便全局使用
ln -s /usr/local/lib/nodejs/node-v12.12.0/bin/npm /usr/local/bin
ln -s /usr/local/lib/nodejs/node-v12.12.0/bin/node /usr/local/bin

2.2 測試 nodejs是否安裝成功

圖2-1

2.3 上傳后端代碼

我是以nodejs作為后端滴

# 1. 進入/usr/local文件夾
cd /usr/local
# 2. 創建develop文件夾,用于放前后端代碼
mkdir develop
# 3. 進入develop文件夾,并上傳node服務代碼
cd develop
# 4. 安裝依賴包
npm i
# 5. 安裝supervisor (supervisor 是 node 應用的進程管理器)
npm install supervisor -g
  • 注意:執行supervisor app.js時,如果遇到報"-bash: supervisor: command not found", supervisor已經安裝的情況下,請注意看下是否裝在 /usr/local/bin/ 目錄下;如果不是說明安裝目錄不對,Mac默認訪問執行文件的目錄在 /usr/local/bin/,所以需要保證我們的執行模塊安裝在該目錄下。


    圖2-2
  • 解決辦法如下
npm config get prefix                        // 獲取npm全局安裝目錄
npm config set prefix /usr/local        // 修改安裝目錄為Mac可執行文件目錄;注意這里不需要加上/bin
npm install supervisor -g
supervisor app.js

2.4 開啟后端端口

  1. 檢查防火墻是否開啟


    圖2-3
  2. 查看端口是否開放(這里后端開啟13666端口)
# 查看13666端口是否開放  yes表示開啟;no表示未開啟。
firewall-cmd --query-port=13666/tcp
# 添加指定需要開放的端口:
firewall-cmd --add-port=13666/tcp --permanent
# 重載入添加的端口:
firewall-cmd --reload
# 查詢指定端口是否開啟成功:
firewall-cmd --query-port=13666/tcp
圖2-4

2.5 守護進程--supervisord

到這里,nodejs和后端就部署完成啦~但還差一步就是安裝守護進程supervisord并設置開機自啟動,因為如果不安裝supervisord,當我們關閉xshell時后端就會停止服務,所以我們需要一個工具去讓我們的后端進程一直開啟,這就是supervisord存在的意義(當然守護進程還有很多 這里以supervisord為例)

  1. 安裝supervisor
    yum install -y supervisor
    圖2-5
  2. 設置開機自啟動
    systemctl enable supervisord
  3. supervisord管理命令
systemctl stop supervisord
systemctl start supervisord
systemctl status supervisord
systemctl reload supervisord
systemctl restart supervisord
圖2-6
  1. 修改配置文件
    輸入指令vim /etc/supervisord.conf
    圖2-7

    輸入指令cat /etc/supervisord.conf
    圖2-8

    圖2-9
  2. 創建Supervisord文件
mkdir /etc/supervisord.d
cd /etc/supervisord.d
touch supervisord.ini

圖2-10

輸入指令vim /etc/supervisord.d/supervisord.ini并粘貼下列代碼

#這里的node-supervisord就是我們顯示在web前端以及終端的監控名稱
[program:node-supervisord]
#啟動命令 : 此處我的node服務啟動命令是supervisor app.js (/usr/local/develop/back-end/app.js為我們要監控的文件地址)
command=supervisor /usr/local/develop/back-end/app.js  
autostart=true
autorestart=true
startsecs=1
startretries=3
redirect_stderr=true
 #日志地址,可自行配置目錄(需要自己創建)
stdout_logfile=/etc/supervisord.log/access_supervisord.log  
#日志地址,可自行配置目錄(需要自己創建)
stderr_logfile=/etc/supervisord.log/error_supervisord.log     
圖2-11
  1. 創建日志文件
mkdir /etc/supervisord.log
cd /etc/supervisord.log
touch {error_supervisord.log,access_supervisord.log}
圖2-12
  1. 重啟supervisor
    輸入命令systemctl restart supervisord
    圖2-13

    # 參考Centos7.x 安裝 Supervisord

三、安裝nginx

在linux下安裝nginx,首先需要安裝 gcc-c++編譯器。然后安裝nginx依賴的pcre和zlib包。最后安裝nginx即可。

# 1.先安裝gcc-c++編譯器
yum install gcc-c++
yum install -y openssl openssl-devel
# 2.再安裝pcre包
yum install -y pcre pcre-devel
# 3.再安裝zlib包
yum install -y zlib zlib-devel
# 4. 添加rpm源(一般/etc放配置文件,/usr/local放用戶代碼)
rpm -Uvh [http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm](https://links.jianshu.com/go?to=http%3A%2F%2Fnginx.org%2Fpackages%2Fcentos%2F7%2Fnoarch%2FRPMS%2Fnginx-release-centos-7-0.el7.ngx.noarch.rpm)
# 5. 查看源是否添加成功
yum search nginx
# 6. 安裝nginx
yum install -y nginx
# 7. 設置開機自啟動
systemctl enable nginx
# 8. 允許HTTP和HTTPS通信
sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

圖3-1:安裝nginx


圖3-1

圖3-2:查看nginx狀態是否為active


圖3-2

圖3-3:查看nginx開啟的端口(nginx 默認80端口)
圖3-3

圖3-4:修改nginx端口為8081


圖3-4

圖3-5:重啟nginx,并查看8081端口是否開啟
圖3-5

圖3-6: 開放8081端口
圖3-6

圖3-7:查看url是否可達
圖3-7

圖3-8:外網映射
圖3-8

圖3-9

圖3-10:訪問 公網ip+nginx端口


圖3-10
  • 最后設置開機自啟動
    systemctl enable nginx

四、部署前端包

  1. 將前端包放到/usr/local/develop/web-front-end中


    圖4-1
  2. 修改nginx配置(/etc/nginx/nginx.conf)


    圖4-2
  3. 重啟nginx
    systemctl restart nginx
  4. 訪問 公網ip+nginx端口


    圖4-3

文件位置

nodejs包:/usr/local/lib/nodejs
后端代碼:/usr/local/develop/back-end
前端代碼:/usr/local/develop/web-front-end
nginx:/etc/nginx
supervisor配置文件(修改ip、端口等): /etc/supervisord.conf
supervisor設置啟動命令:/etc/supervisord.d/supervisord.ini
supervisor日志文件:/etc/supervisord.log

常用指令

(1)基本命令
創建a文件夾 :mkdir /usr/local/lib/a
創建b文件:touch b.txt
創建c、d文件:touch {c.txt,d.txt}
解壓a.tar.gz壓縮包:tar -xzvf /usr/local/lib/nodejs/a.tar.gz -C /usr/local/lib/nodejs
重命名為b:mv /usr/local/lib/nodejs/a  /usr/local/lib/nodejs/b
建立軟連接  在 bin 下創建 node、npm快捷方式,方便全局使用:
ln -s /usr/local/lib/nodejs/node-v12.12.0/bin/npm /usr/local/bin
ln -s /usr/local/lib/nodejs/node-v12.12.0/bin/node /usr/local/bin

(2)查看防火墻狀態
查看防火墻狀態:systemctl status firewalld
開啟防火墻:systemctl start firewalld    或    service firewalld start 
關閉防火墻:systemctl stop firewalld    或     service firewalld stop
重啟防火墻:systemctl restart firewalld   或 service firewalld restart
設置開機自啟動:systemctl enable firewalld
# 查看防火墻規則
查看全部信息 firewall-cmd --list-all
只看端口信息firewall-cmd --list-ports

若遇到無法開啟
先用:systemctl unmask firewalld.service 
然后:systemctl start firewalld.service

(3)查看對外開放的端口狀態
查詢已開放的端口:netstat -anp
查詢指定端口是否已開 :firewall-cmd --query-port=666/tcp (提示 yes,表示開啟;no表示未開啟。)
查詢nginx進程:netstat -anop | grep nginx
殺進程:kill -9 進程pId

(4)對外開發端口
查看想開的端口是否已開:firewall-cmd --query-port=6379/tcp
添加指定需要開放的端口:firewall-cmd --add-port=123/tcp --permanent
重載入添加的端口:firewall-cmd --reload
查詢指定端口是否開啟成功:firewall-cmd --query-port=123/tcp
移除指定端口:firewall-cmd --permanent --remove-port=123/tcp

(5)supervisor
停止:systemctl stop supervisord
開啟:systemctl start supervisord
查看狀態:systemctl status supervisord
重載:systemctl reload supervisord
重啟:systemctl restart supervisord
開機自啟動:systemctl enable supervisord

(6)虛擬機相關
查看虛擬機列表:virsh list --all
虛擬機關機:virsh shutdown 虛擬機名稱
虛擬機開機:virsh start 虛擬機名稱

(7)服務器相關
服務器立即關機:shutdown -h now
服務器重啟:reboot

(8) 其他
url是否可達:curl -XGET http://1.1.1.1:8081
后臺運行進程:nohup 命令 &     
             示例:nohup node app.js &,這種關閉xshell,進程就關了,所以需要寫啟動關閉腳本 + 服務

推薦文章

二、阿里云服務器配置https

最后編輯于
©著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
8人點贊
總資產12共写了2.2W字获得151个赞共41个粉丝
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,460評論 6 538
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,067評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,467評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,468評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,184評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,582評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,616評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,794評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,343評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,096評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,291評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,863評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,513評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,941評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,190評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,026評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,253評論 2 375

推薦閱讀更多精彩內容