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連接