起源
在移動web調試時經常使用jsconsole工具,最近該工具線上地址掛了,網上查詢了下,發現了jsconsole的源碼:https://github.com/remy/jsconsole 根據文檔的指引,只需要兩個命令npm install及node .就能在本機新建一個jsconsole的調試網站,於是就想著把項目從本地遷移至雲上,以方便使用。
前期準備
雲服務器一臺 買了阿里雲的一臺低配服務器,系統安裝的是linux的Ubuntu。
域名 同樣在阿里雲上買的,域名叫leonddup.com,取意day day up。
域名解析
什麼是域名解析 域名解析就是將域名指向雲服務器的ip,這樣就能通過域名訪問雲上的內容。ip會在購買服務器後提供。
具體操作 阿里雲提供了非常友好的域名解析操作界面
基本小白都能搞定,同時我們發現左側還有其他服務網站監控、負載均衡、CDN加速等等,都是前端範疇的一些功能及優化,後面再一一嘗試。
linux系統初學
雲服務器安裝的是linux系統,因此需要學習下linux的常用命令。
遠程連接服務器
阿里雲提供的web版終端
mac終端遠程連接sudo ssh root@[ip]。
創建本人用戶雲服務器
默認是root用戶,每次登陸root不僅不安全還彆扭,因此創建本人用戶:
useradd -d /home/leon -m leon
為新用戶添加sudo權限:
打開sudoers配置文件:visudo
在root ALL=(ALL:ALL) ALL下添加當前用戶 leon ALL=(ALL:ALL) ALL。
現在可以直接遠程連接leon用戶了
sudo ssh leon@[ip]。
安裝node及git
項目中需要用到node及git,可能的場景包括git代碼管理、node服務開啟、項目打包等。
linux的安裝指令為apt-get,
安裝node:
sudo apt-get install nodejs、
sudo apt-get install npm,
安裝git:
sudo apt-get install git
服務進程的開啟與關閉
顯示網絡信息:netstat,-a顯示所有端口,-l顯示所有監聽中的端口,
查看進程信息:ps -ef|grep [name],
終止服務:`kill [進程號],
本地文件上傳到服務器
由於一般是在本地coding,然後將最終的代碼上傳到雲上,因此需要copy文件到雲上。
通過git管理 代碼push到碼雲上,服務器中再pull下來。可以選擇gitlab管理項目代碼,也可以直接將代碼上傳到github託管,雲服務器直接從github上pull代碼。
linux指令scp [參數] [原路徑] [目標路徑]。
反向代理
實際應用中會開啟很多個服務,每個服務獨立開來,此時需要反向代理,代理不同端口的服務。
什麼是反向代理
客戶端向代理服務器發送請求,代理服務器向其他服務器獲取資源返回給客戶端。
node方案
引用express及express-http-proxy兩個包搭建:
app.use('/jsconsole', proxy('localhost:8000'))
Nginx方案
1.安裝Nginx
Ubuntu系統下安裝 sudo apt-get install nginx
2.Nginx 基礎命令
開啟 nginx
停止 nginx -s stop
重啟 nginx -s reload
3.Nginx反向代理配置在/etc/nginx/nginx.conf文件中修改
問題 在實際應用中發現代理訪問的頁面報很多資源訪問不到的error,經查是因為這些資源的請求路徑是相對於根目錄的/,需要修改為相對於當前目錄或者使用絕對路徑。
node服務永久開啟
需求 本地開啟遠程服務器的node服務時,當關閉終端或斷開遠程連接,node服務也會終止,這不是我們想要的,我們希望node服務是永久開啟的。
解決 linux有個nohup命令,該命令可以 讓遠程服務器不受本地關閉終端或者斷開連接的影響繼續運行服務,只需要在node命令前添加該指令就行nohup node 。
http升級為https
https(超文本傳輸安全協議)是一種網絡安全傳輸協議,相對於http更加安全
獲取證書
服務商提供
阿里雲可以申請免費1年的SSL證書,教程傳送門:https://bbs.aliyun.com/read/303413.html?spm=5176.100241.0.0.zQHYoq
使用openssl指令生成證書
$ openssl genrsa -out yourkey.pem 1024
$ openssl req -new -key yourkey.pem -out yourcsr.csr
$ openssl x509 -req -in yourcsr.csr -signkey yourkey.pem -out yourcert.pem
本人用的是阿里雲的免費證書,成功申請後會獲得以下文件
在node服務中需要用到的是前兩個文件.key及.pem
安裝
由於使用的是node服務,這裡介紹node的安裝
https模塊
restify框架
jsconsole簡介及安裝
資源
https://jsconsole.com/(jsconsole項目源作者提供的線上版,目前502無法訪問)https://github.com/remy/jsconsole (jsconsole項目源碼)https://leonddup.com:8000/ (本文作者提供的線上版本)
簡介jsconsole是一款web移動開發的調試工具,可以在PC上顯示移動頁面的控制檯,可以打印console的信息及報錯信息,也可以輸入指令。
安裝並開啟服務
1.下載源碼git clone https://github.com/remy/jsconsole.git
2.安裝
切換到jsconsole項目目錄cd jsconsole,安裝node依賴npm install。
3.開啟服務node .,默認端口為8000,可設置端口PORT=8080 node .。
4.使用打開首頁,看到如下界面
創建新的監聽在輸入框輸入指令:listen,獲得需要插入頁面的js文件url
插入js在需要調試的頁面<head></head>裡插入js引用
開始監聽打開頁面,此時頁面中console的信息會顯示在jsconsole控制檯上
結語
建站的過程遇到了很多問題,每次問題的解決都是一次知識的補充,收穫很多。然而目前依舊有很多未解決的問題,需要進一步深入研究。
本文作者:周磊(點融黑幫),高級前端開發工程師,目前在點融cashloan項目組從事前端開發工作。