李白翔
李白翔
李白翔
李白翔
李白翔
李白翔
bg
- 許久之前用 react-redux-starter-kit 做了一個靜態(tài)的博客工程敛苇,名為 Blog
- 許久之前買了一個阿里云服務(wù)器
- 許久之前買了兩個域名
Initial state
- Blog 在本地可正常啟動
- 服務(wù)器全新狀態(tài)
- 域名全新狀態(tài)沒用過
- 沒有自己搞過服務(wù)器
服務(wù)器初始設(shè)置
安裝 Node
第一個想到的就是 Node 雀久,從來沒有搞過服務(wù)器东羹,因此我連怎么裝都不知道...
查了一下官方文檔个榕,和 Google 結(jié)果,據(jù)說 apt-get (我也是第一回知道 apt-get 這個東西)會安裝一個非常老的版本概耻,例如 2.x 之類的使套;6.x 與 7.x 的安裝方法又不一樣,于是向運維同學(xué)請教得知以下命令(有人指點果然省事許多):
## 都在 root 用戶下執(zhí)行
apt-get update
apt-get install python-software-properties -y
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
apt-get install nodejs -y # 這步時間比較久鞠柄,因為是在
node -v # 查看一下版本童漩,然后可以安裝個 nvm 去切換版本
---
上面那個是 安裝 7.7.1 的 node, 比較新春锋,也可以直接 apt-get install nodejs 矫膨, 這樣裝的話,版本比較舊
到 curl 又卡住期奔,curl 是什么東西...
安裝 curl
command line tool and library
for transferring data with URLs
根據(jù)控制臺提示 apt-get install curl
, done.
然后繼續(xù)安裝 Node , done.
安裝 Git
apt-get git
但是博客工程是一個私有工程侧馅,需要給配秘鑰,以前在開發(fā) Frimap 的時候給配過呐萌,但是早已忘記了馁痴,于是 Google 之。
ssh-keygen -t rsa -C "your.email@example.com" -b 4096
得到一串 ssh-rsa 開頭的長串肺孤,粘到 Git 工程中的 Deploy keys 中罗晕;在服務(wù)器目錄下:
git clone xxxxxxxxxxxxx
git pull
工程即可得。
安裝 cnpm
試著 npm install
一下赠堵,發(fā)現(xiàn)沒有梯子果然很慢小渊,甚至根本 install 不了...
cnpm 早有耳聞,一直有梯茫叭,從未用過酬屉。服務(wù)器搭梯子有點費勁,用 cnpm 還是比較省事兒的。
npm install -g cnpm --registry=https://registry.npm.taobao.org # 安裝cnpm
則呐萨,可 cnpm install
然后杀饵,npm start
工程成功啟動。
安裝 NGINX
之前搞公司前端測試服務(wù)器的時候曾經(jīng)搞過一點 NGINX 相關(guān)的配置谬擦,但是只是很皮毛的東西切距,無非是寫一些路由配置。
Google: nginx ubuntu 的第一個結(jié)果:
sudo apt-get install nginx
NGINX, done.
域名解析
在阿里云的控制臺中找域名解析惨远,將服務(wù)器 ip 填入即可谜悟。
NGINX 配置
server {
listen 80;
server_name your.domain;
location / {
proxy_pass http://your ip address:port/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_body_buffer_size 128k;
client_max_body_size 1m;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
}
}
保存,啟動 NGINX锨络。
sudo nginx
sudo nginx -s reload
訪問
直到目前為止,我認(rèn)為一切都OK了狼牺。
- 域名已解析
-
npm start
已啟動 - NGINX 已配置并啟動
sudo nginx
瀏覽器訪問 poorbug.tech 羡儿,能夠成功訪問。??
但是是钥,當(dāng)我晚上試著訪問時掠归,發(fā)現(xiàn)頁面 502 了,目測是工程掛了悄泥,上去一看確實是虏冻,于是到公司的工程中翻找同事寫的上線腳本,發(fā)現(xiàn)了一絲線索弹囚。
run('forever start -c "npm run start-prod" .')
forever 又是什么鬼?
A simple CLI tool for ensuring that a given script runs continuously (i.e. forever).
$ [sudo] npm install forever -g
如提示安裝
run command forever start -c "npm run start-prod"
報錯厨相!不解,Google 了一下鸥鹉,得到此解 https://github.com/foreverjs/forever/issues/540蛮穿。
細(xì)看后發(fā)現(xiàn)原來在同事的腳本中后面有一個 . 表示路徑,被我忽略了毁渗。于是重新 run command 践磅, done.
尾聲
到此,Blog 工程跑起來了灸异。感覺在這個過程中府适,分而治之的思想很好的解決了這個問題,把每一個工具都安裝配置調(diào)試好了肺樟,那么工程就跑起來了檐春。
完美。