記一次專案上線過程
以前嫌麻煩,自己寫了很多小demo,卻從未考慮過上線給其他人使用。後來有一個面試官告訴我,你身為開發,做出來的專案就是要給別人用的。於是後來我買了一個阿里雲的學生伺服器,也很便宜,一個月9.5。然後為我的部落格買了一個域名,開始了學習上線之路。
1.首先記得要把前端專案裡面的baseURL加入線上環境的URL,這個操作可以用webpack提供的功能實現
比如我的:
const baseUrl = process.env.NODE_ENV === 'production' ? 'https://www.lixinyi0622.com/v1/' : 'http://localhost:4200/v1/' // 專案執行在開發環境還是生產環境,根據不同環境對應不同webpack配置
2.然後將前端專案用webpack打包成一個dist資料夾
npm run build
這個npm命令的本質就是執行你專案裡的build資料夾的build.js
3.然後下載一個SSL連線工具
這裡我選擇的是putty。
開啟putty輸入你的伺服器IP,然後連線,在控制檯裡輸入你的root賬號的密碼。
4.然後使用Linux命令安裝好各種所需的應用環境,例如node.js和mysql
5.專案的部署可以自行下載ftp傳輸工具
我選擇的是xftp
這樣子傳輸的好處是可以視覺化的操作了,當然你也可以使用git來部署。
把你的前端打包後的專案和後端專案都部署進去。
6.如果要使用nginx做代理的話,需要在nginx.conf裡的server裡配置一下root,就是你存放專案的位置,然後server_name可以設定多個你想要通過它們來訪問網站的域名。
7.要讓你的後臺專案持續執行,需要在伺服器上安裝一個pm2,這是一個很強大的程序管理工具
npm install -g pm2
安裝好之後,進入後臺專案目錄,然後執行命令
`pm2 start app.js`
這樣後臺就會一直執行,不用每次都手動開啟。
8.然後記得把你的本地資料庫轉移到伺服器的資料庫上,我使用的是mysql,本地視覺化工具我使用navicat,這個工具支援連線阿里雲伺服器,所以可以直接在navicat裡面對伺服器上的資料庫進行操作,非常方便。相應的後臺專案裡面對資料庫的配置資訊也要記得修改過來。
9.這樣子差不多就算上線成功了,如果你的域名成功備案了,那麼就可以用域名訪問了。
10.偶然發現阿里雲裡面可以買到免費的SSL證書,於是我買了一個,然後http轉到https的過程也摸索了一下。
從阿里雲上下載證書,解壓得到一個pem和一個key。
然後把這些放到伺服器上去。
首先當然是需要更改一下ngin.conf裡面的設定,把443的埠配置照著之前80的一樣編輯一下。
ssl_certificate
是pem檔案的路徑,ssl_certificate_key
是key檔案的路徑。
這樣還不算完,還需要修改一下後端專案裡面的www啟動程式碼。
先把證書放進專案內。
把原先的var http = require('http');
裡面的http
改為https
var fs = require('fs');
var options = {
key:fs.readFileSync("../ssl/xxx.key"),
cert:fs.readFileSync("../ssl/xxx.pem")
};
var server = https.createServer(options,app.callback()).listen(443);
這樣後端就改好了。
然後我們還要把前端專案裡的baseURL改為https開頭的。