阿里云服務(wù)器部署 nuxt 項目

1. 遠程 SSH 連接 server

基于 server CentOS 8.0 64位悔详,本機 MacOS,推薦使用 FinalShell 或者 CyberDuck 連接惹挟。

連接成功茄螃,會有以上的信息。

然后需要安裝的環(huán)境如下:

  • nginx

  • node

  • npm

  • yarn(可選項连锯,如使用 npm 可以不用安裝 yarn)安裝參考

  • pm2

2. nginx

2.1 安裝依賴環(huán)境

依次執(zhí)行:

yum -y install gcc-c++
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel

2.2 添加用戶归苍、組用狱、創(chuàng)建目錄

groupadd nginx
useradd -g nginx -d /home/nginx nginx
passwd nginx
mkdir /var/run/nginx
mkdir /var/temp 
mkdir /var/temp/nginx

2.3 下載并解壓nginx

版本號可以按喜好替換

cd /opt
wget http://nginx.org/download/nginx-1.16.0.tar.gz
tar -zxvf nginx-1.16.0.tar.gz 

2.4 進入解壓文件夾并指定安裝路徑

cd nginx-1.16.0
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_gzip_static_module --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --http-scgi-temp-path=/var/temp/nginx/scgi
make && make install

2.5 設(shè)置用戶權(quán)限及開機啟動

  ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx
  cd /etc/rc.d
  sed -i '13a /usr/local/nginx/sbin/nginx' /etc/rc.d/rc.local 
  chmod u+x rc.local

瀏覽器打開 server ip:


如果不是以上頁面,而是 CentOS 頁面拼弃,說明阿里云的服務(wù)在開啟夏伊,這時需要執(zhí)行 lsof命令查找進程并一一 kill,然后執(zhí)行 nginx 命令再刷新頁面肴敛。頁面啟動正常就可以進行下一步了署海。

3. node

3.1 下載Node.js安裝包

wget https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz

3.2 解壓安裝包

tar xvf node-v6.9.5-linux-x64.tar.xz

3.3 創(chuàng)建軟鏈接

ln -s /root/node-v6.9.5-linux-x64/bin/node /usr/local/bin/node
ln -s /root/node-v6.9.5-linux-x64/bin/npm /usr/local/bin/npm

3.4 查看版本

node -v
npm -v

3.5 測試

新建項目文件 example.js

cd ~
touch example.js

修改文件,使用 FinalShell 直接打開 example.js 編輯添加如下代碼:

const http = require('http');
const hostname = '0.0.0.0';
const port = 3000;
const server = http.createServer((req, res) => { 
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    res.end('Hello World\n');
}); 

server.listen(port, hostname, () => { 
    console.log(`Server running at http://${hostname}:${port}/`);
});

運行:

node ~/example.js &

登錄ECS管理控制臺医男,并在ECS實例安全組的入方向添加規(guī)則砸狞, 放行項目中配置的端口(本示例中端口號為3000)。

訪問 http://<ECS實例公網(wǎng)IP地址>:3000

更多細節(jié)請移步 部署Node.js環(huán)境

4. pm2

npm install -g pm2 這里安裝之后需要指定軟連接

ln -s /your-server-node_path/bin/pm2 /usr/local/bin/pm2

項目 yarn build 打包镀梭,將 .nuxt static package.json nuxt.config.js 等文件/文件夾 copy 至服務(wù)器的文件夾 /usr/local/nginx/my-nuxt(此處的項目名稱要和下面啟動項目名稱對應(yīng))刀森,然后在該目錄下執(zhí)行

yarn install -production
  • 進程守衛(wèi)

package.json 文件中需要添加以下配置:

 "scripts": {
    "dev": "nuxt",
    "build": "nuxt build",
    "start": "PORT=3000 nuxt start",  // 這里添加 PORT=3000
    "generate": "nuxt generate",
    "lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
    "test": "jest"
  },

修改 /usr/local/nginx/conf/nginx.conf 文件:

# 添加這段配置
upstream nodenuxt {
        server ip_address:3000;
        keepalive 64;
}

# server 配置
server {
        listen 80;
        location / {
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;  
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $host;
            proxy_set_header X-Nginx-Proxy true;
            proxy_cache_bypass $http_upgrade;
            proxy_pass http://nodenuxt; #反向代理
        }
    }
# yarn
pm2 start yarn --name "my-nuxt" -- start

# npm
pm2 start npm --name "my-nuxt" -- run start

如果訪問不到,可以使用 pm2 logs 命令查看下然后按照提示解決报账。

5. 綁定域名 & 備案

首先要實名認證研底,然后等待 2-3 個工作日后填寫備案信息,接下來添加域名解析:

  • 阿里云注冊域名->到域名管理后臺點擊解析->添加記錄到阿里云公網(wǎng)ip
  • 阿里云服務(wù)器后臺點擊實例->點擊更多找到網(wǎng)絡(luò)和安全組->點擊添加安全組配置->添加規(guī)則透罢,端口號對應(yīng)項目設(shè)置端口榜晦,本人為默認端口80,目的是輸入域名不加端口號即可訪問羽圃。

6. SFTP 連接

SSH File Transfer Protocol乾胶,也稱 Secret File Transfer Protocol,安全文件傳送協(xié)議朽寞。使用該協(xié)議可以實現(xiàn)本地向遠程服務(wù)器推送工程文件识窿。

以 VS Code 為例:

6.1 安裝插件

插件市場搜索 sftp 安裝完成調(diào)出配置命令,Windows 系統(tǒng)快捷鍵 CTRL + SHIFT + P脑融,Mac CMD + SHIFT + P喻频,輸入 SFTP:config 按回車:

根目錄會生成這個文件。

6.2 配置 sftp.json

{
  "name": "My Server",   
  "host": "localhost",  // 改為遠程 server ip
  "protocol": "sftp",   
  "port": 22,
  "username": "username",  // 改為遠程 server 登錄用戶名肘迎,通常是 root
  "password": "******",  // 服務(wù)器登錄密碼
  "remotePath": "/",   // server 上項目目錄地址甥温,比如我的項目是 /usr/local/nginx/ziyu
  "uploadOnSave": true  // 刪除這個配置或者 改為 false,否則每次保存就自動上傳有點麻煩
}

6.3 上傳文件或文件夾:

文件上傳右鍵點擊 upload

文件夾上傳右鍵點擊 Sync Local -> Remote

參考文章:
Node項目部署到阿里云服務(wù)器(ECS)妓布,以Nuxt.js服務(wù)端渲染項目為例
VS code配置SFTP連接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窿侈,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子秋茫,更是在濱河造成了極大的恐慌,老刑警劉巖乃秀,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肛著,死亡現(xiàn)場離奇詭異圆兵,居然都是意外死亡,警方通過查閱死者的電腦和手機枢贿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門殉农,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人局荚,你說我怎么就攤上這事超凳。” “怎么了耀态?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵轮傍,是天一觀的道長。 經(jīng)常有香客問我首装,道長创夜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任仙逻,我火速辦了婚禮驰吓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘系奉。我一直安慰自己,他們只是感情好缺亮,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布翁涤。 她就那樣靜靜地躺著,像睡著了一般瞬内。 火紅的嫁衣襯著肌膚如雪迷雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天虫蝶,我揣著相機與錄音章咧,去河邊找鬼。 笑死能真,一個胖子當著我的面吹牛赁严,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播粉铐,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼疼约,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蝙泼?” 一聲冷哼從身側(cè)響起程剥,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎汤踏,沒想到半個月后织鲸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舔腾,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年搂擦,在試婚紗的時候發(fā)現(xiàn)自己被綠了稳诚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡瀑踢,死狀恐怖扳还,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情橱夭,我是刑警寧澤氨距,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站徘钥,受9級特大地震影響衔蹲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜呈础,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一舆驶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧而钞,春花似錦沙廉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至网缝,卻和暖如春巨税,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背粉臊。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工草添, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人扼仲。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓远寸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親屠凶。 傳聞我的和親對象是個殘疾皇子驰后,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容