從購買阿里云 ECS 服務器到搭建 Egg.js 運行環(huán)境

一:本地終端連接到阿里云服務器 (ubuntu括堤,其他系統(tǒng)步驟可能稍有出入,但是方法一致)

  1. 首先我們要保證我們終端能夠連接到服務器率寡,如果忘記阿里云服務器 root 登錄密碼职烧,可以如下重置捧挺。


    重置密碼(選擇重置實例密碼)
  2. 使用 terminal 終端進行遠程連接

ssh root@100.100.100.100
然后輸入我們剛剛重置的實例密碼虑绵。

登陸成功就會出現(xiàn)這個提示
  1. terminal 能夠默認長時間連接,不因為一小段時間未操作闽烙,就斷開連接翅睛。

編輯服務器/etc/ssh/sshd_config,最后增加
ClientAliveInterval 60
ClientAliveCountMax 60
表示每 60 秒向客戶端發(fā)起一次心跳黑竞,如果客戶端無回應捕发,則最多累計發(fā)送 60 次。

  1. 每次遠程登錄如果需要輸入密碼略顯復雜很魂,接下來配置 ssh 免密登陸扎酷。
  • 安裝 ssh: sudo apt-get install ssh
  • 生成公鑰私鑰: ssh-keygen -t rsa (一路 Enter 回車鍵到底)
  • cd ~/.ssh 文件,會發(fā)現(xiàn)多了如下三個文件authorized_keys id_rsa id_rsa.pub
  • 將本地機器上的 id_rsa.pub 文件里面的公鑰遏匆,拷貝到 服務器的 authorized_keys 文件中
  • 最后在服務端運行 service ssh restart 重啟即可配置完成霞玄。再次運行 ssh root@100.100.100.100 就可以不需要輸入密碼直接登錄了骤铃。

二:搭建環(huán)境

  1. 安裝 nvm 這是一個 node 的版本控制器
  • 升級 sudo apt-get update 保證 apt-get 是最新版。
  • sudo apt-get install vim openssl build-essential libssl-dev wget curl git 安裝一些環(huán)境必要包
  • curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash 安裝 0.31.4 版本的 nvm坷剧,有時候因為網(wǎng)絡原因會失敗,可以多試幾次喊暖。
  • 重啟終端惫企,然后用 nvm命令測試安裝是否成功。
  1. 安裝指定版本的 node
  • nvm install v8.15.1 安裝指定版本
  • nvm use 8.15.1 當前環(huán)境使用指定版本
  • nvm alias default 8.15.1 指定默認 node 版本
  1. 查看并更換 npm陵叽,npm 是 node 的包管理器狞尔,會隨著 node 自動安裝
  • 作為國內開發(fā),需要查看 npm 的源:npm config get registry
  • 如果源不是淘寶的巩掺,需換成淘寶源:npm config set registry https://registry.npm.taobao.org/
  1. 安裝 nginx偏序,因為 egg.js 需要使用 nginx 來做反向代理。
  • sudo apt-get install nginx
  • sudo /etc/init.d/nginx start 啟動 nginx
  • curl http://localhost/ ping 一下這個地址胖替,返回 Welcome to nginx! 表示安裝成功研儒。
  1. 為什么外網(wǎng)不能訪問我們的首頁呢?這是因為阿里云服務器有個安全組配置独令,我們需要去打開 80 端口端朵。
點擊這個開始進行安全組訪問配置
把 80 和 443 端口打開來,因為后面我們需要配置 https
此時燃箭,通過外網(wǎng)瀏覽器就可以訪問我們 nginx 首頁啦

三:上傳 egg.js 代碼到服務器

  1. 使用 騰訊 git 代碼管理平臺冲呢,上傳自己的代碼
  2. 將我們阿里云遠程服務器中 ~/.ssh/ 目錄下的 id_rsa.pub 公鑰加入到代碼管理的 ssh 中。讓遠程服務器能訪問我們的 git 代碼倉庫招狸。
  3. git clone xxxx代碼地址xxxx 即可敬拓。

四:利用 nginx 實現(xiàn) egg.js 的反向代理,并且支持 https

前期提條件:有一個備案好的域名裙戏。

  1. 去 阿里云的 SSL 控制臺乘凸,申請個人免費 SSL ,每個有效期只有一年挽懦,目前有完全免費的翰意。


    SSL 簽發(fā)狀態(tài)
  2. 然后點擊下載,會看到如下頁面信柿。

    證書下載

  3. 點擊幫助冀偶,根據(jù) nginx 幫助內容配置 nginx。

  4. 期間遇到任何問題渔嚷,個人超過一個小時未解決进鸠,可以提交工單,你是阿里云付費用戶形病,阿里云會有人幫你解決問題的客年。很強大霞幅!

  • 幾個部署 SSL 需要用到的命令
  • tar zcvf cer.tar.gz cer 將本地證書打包成 cer.tar.gz 壓縮文件
  • scp local_file remote_username@remote_ip:remote_folder 將本地文件傳遞到服務器
  • tar xvf cer.tar.gz 服務端解壓縮文件
  • rm -rf cer.tar.gz 刪除多余的壓縮文件

確保 cer 目錄放在 /etc/nginx/ 下,然后在 /etc/nginx/conf.d 文件夾下創(chuàng)建 myprogram-7001.conf 文件量瓜,并且填入一下內容

# 以下屬性中以ssl開頭的屬性代表與證書配置有關司恳,其他屬性請根據(jù)自己的需要進行配置。
server {
    listen 443 ssl;   #SSL協(xié)議訪問端口號為443绍傲。此處如未添加ssl扔傅,可能會造成Nginx無法啟動。
    server_name mt-app.runduck.cn;  #將localhost修改為您證書綁定的域名烫饼,例如:www.example.com猎塞。
    root html;
    index index.html index.htm;
    ssl_certificate cer/3670617_mt-app.runduck.cn.pem;   #將domain name.pem替換成您證書的文件名。
    ssl_certificate_key cer/3670617_mt-app.runduck.cn.key;   #將domain name.key替換成您證書的密鑰文件名杠纵。
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件荠耽。
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用該協(xié)議進行配置。
    ssl_prefer_server_ciphers on;   
    location / {
          proxy_pass http://127.0.0.1:7001;
    }
}   

server {
    listen       80;
    server_name mt-app.runduck.cn;
    rewrite ^(.*)$ https://${server_name}$1 permanent; 
}

注釋掉 /etc/nginx/nginx.conf 文件內的 #include /etc/nginx/sites-enabled/*; 防止額外配置影響我們自己的配置比藻。

  • 配置完成后用 sudo nginx -t 命令檢查我們 conf 里面的配置是否正確铝量。輸出syntax is ok
  • sudo service nginx reload 重啟 nginx 服務器

五:再安裝一個 pm2韩容,有部分 nodejs 代碼需要用 pm2 執(zhí)行

  • npm i pm2 -g
  • pm2 start app.js --name="api" # 啟動應用程序并命名為 "api"
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末款违,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子群凶,更是在濱河造成了極大的恐慌插爹,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件请梢,死亡現(xiàn)場離奇詭異赠尾,居然都是意外死亡,警方通過查閱死者的電腦和手機毅弧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門气嫁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人够坐,你說我怎么就攤上這事寸宵。” “怎么了元咙?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵梯影,是天一觀的道長。 經(jīng)常有香客問我庶香,道長甲棍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任赶掖,我火速辦了婚禮感猛,結果婚禮上七扰,老公的妹妹穿的比我還像新娘。我一直安慰自己陪白,他們只是感情好颈走,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著咱士,像睡著了一般疫鹊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上司致,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天,我揣著相機與錄音聋迎,去河邊找鬼脂矫。 笑死,一個胖子當著我的面吹牛霉晕,可吹牛的內容都是我干的庭再。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼牺堰,長吁一口氣:“原來是場噩夢啊……” “哼拄轻!你這毒婦竟也來了?” 一聲冷哼從身側響起伟葫,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤恨搓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后筏养,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體斧抱,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年渐溶,在試婚紗的時候發(fā)現(xiàn)自己被綠了辉浦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡茎辐,死狀恐怖宪郊,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情拖陆,我是刑警寧澤弛槐,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站慕蔚,受9級特大地震影響丐黄,放射性物質發(fā)生泄漏。R本人自食惡果不足惜孔飒,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一灌闺、第九天 我趴在偏房一處隱蔽的房頂上張望艰争。 院中可真熱鬧,春花似錦桂对、人聲如沸甩卓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逾柿。三九已至,卻和暖如春宅此,著一層夾襖步出監(jiān)牢的瞬間机错,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工父腕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留弱匪,地道東北人。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓璧亮,卻偏偏與公主長得像萧诫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子枝嘶,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355