node服務器部署系列———基礎
本人使用的是阿里雲的雲服務器,Ubuntu 14.04 64位 專用vps網絡,關於域名和服務器的購買、備案等,不做講述
雲主機開箱
- 登錄
使用第三方ssh工具登錄(阿里提供的遠程登陸界面也行),使用主機公網IP、root名、密碼(購買時設的)配置好連接 - 硬盤查看
查看硬盤個數fdisk -l
查看使用情況df -h
基礎安全增強
- 創建新管理員
- 輸入命令
adduser [new user name]
填寫新用戶密碼及信息 - 輸入命令
gpasswd -a [new user name] sudo
將新用戶添加到sudo組(管理員組)中 - 輸入命令
sudo visudo
打開用戶權限配置,找到#User privilege specification
在它的root
那項下面新加一行,寫入[new user name] ALL=(ALL:ALL) ALL
意思就是賦予新用戶和上面root一樣的權限,最後^x
退出,按Y
保存,按回車。
- 修改默認登錄端口(以後都使用新管理員登錄)
服務器的默認登錄端口是22,一般很容易被掃描器掃描到,所以我們自己設個新的端口
- 輸入命令
sudo vi /etc/ssh/sshd_config
打開ssh配置文件(提示密碼自己盲敲密碼) - 在配置文件裏找到Port 22這個位置,將數值22改成其他端口(例如:21352,39579),記住新的端口
- 使用
專用網絡
的時候需要在阿里雲安全組設置
(服務器端口防火牆),要將新的端口添加到設置中,否則在下一次ssh登錄服務器時,端口就會被防火牆攔截,就登不上了
- 禁用root
root是每個雲服務器的超管,大家都知道,禁用後能一定程度提高服務器的安全
- 輸入命令
sudo vi /etc/ssh/sshd_config
打開ssh配置文件 - 在配置文件末尾中找到
PermitRootLogin yes
位置,將yes
改成no
,關閉root的ssh登錄
服務器環境
-
node
建議使用node版本管理工具,本人使用的nvm
,下載前更新一下系統包sudo apt-get update
,可以先安裝一些工具包,例如git
之類的,nvm
的安裝和使用在GitHub
上可以找到,自行查找(wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
) -
增加系統文件監控數目
輸入命令echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
-
使用淘寶鏡像
- 臨時使用
npm --registry https://registry.npm.taobao.org install express
- 設置下載源
npm config set registry https://registry.npm.taobao.org
- 查看源
get registry
mpm i -g
安裝通用工具,例如:pm2
,webpack
,gulp
,grunt-cli
到此我們創建一個http服務就可以在服務器上用node跑起來了,就像在本地一樣,我們可以在瀏覽器上使用公用IP+端口號
訪問我們的服務(如果配置了域名就可以使用域名)
但是當我們關閉ssh的會話窗口的時候,服務就會斷掉,所以要使用node服務常駐工具
- 使用pm2常駐node服務
啓動常駐項目 “ pm2 start [app.js]
”
查看常駐項目列表 “ pm2 list
”
查看某項目信息 “ pm2 show [app name]
”
常駐服務後網站服務就可以隨意訪問,但是我們注意到我們必須加上端口號才能正確訪問,這是因爲我們的用戶服務沒有權限監聽80端口,要實現這一功能,我們還是要藉助nginx
才行
- 使用nginx來反向代理和負載均衡
- 安裝nginx, 輸入命令
sudo apt-get install nginx
安裝nginx
- 使用 cd 在路徑 "
/etc/nginx/conf.d
"目錄裏新建站點的配置文件 (文件名例如:dharman-cn-8081.conf)
編寫配置文件
- 在路徑 "
/etc/nginx
" 下打開主配置文件nginx.conf
將#server_tokens off
這條註釋取消#
,這樣瀏覽器將會隱藏nginx
的信息,提高安全係數
這樣我們就基本部署好了一個服務器環境