這一次并不是講nodejs的,有點(diǎn)跑偏了,但是都是為小程序搭建后臺(tái)做的準(zhǔn)備。先說下緣故,在小程序內(nèi)開啟的websoket服務(wù)在真機(jī)上測(cè)試一直報(bào)錯(cuò),找了幾篇文檔,首要確定的是端口和ssl是否有問題。因?yàn)閟sl是用Linux的ope ...
這一次并不是講nodejs的,有點(diǎn)跑偏了,但是都是為小程序搭建后臺(tái)做的準(zhǔn)備。先說下緣故,在小程序內(nèi)開啟的websoket服務(wù)在真機(jī)上測(cè)試一直報(bào)錯(cuò),找了幾篇文檔,首要確定的是端口和ssl是否有問題。因?yàn)閟sl是用Linux的openssl生成的,所以我對(duì)這個(gè)的懷疑度最高。為排除這一個(gè)問題,我決定申請(qǐng)一個(gè)域名和證書,綁定在我的服務(wù)器IP上。
這一路很是尷尬...
在騰訊云上申請(qǐng)一個(gè)域名(真的不是在打廣告?。。┮话愕谝荒甑谋容^便宜,我買了個(gè).xyz的域名,第一年8塊,續(xù)費(fèi)每年99塊(賊貴賊貴的),其他的第一年都上20+,30+,我打算第一次用,先買個(gè)便宜的試一下吧。.xyz和.cn/ .com/ .net等等域名的區(qū)別可參考百科,購(gòu)買時(shí)系統(tǒng)會(huì)提醒的是備案地點(diǎn)的不同。買個(gè)域名后,就可以免費(fèi)申請(qǐng)ssl證書,可用期限1年。
等申請(qǐng)通過之后,在買域名的地方,設(shè)置網(wǎng)站解析?。?!就是把域名綁定在IP地址上。若是沒設(shè)置,后面無論如何都沒用,這坑我可是跌得夠深的。笑著活下去。
在服務(wù)器(Ubuntu)上指定域名和路徑文件。這里我用的是Nginx。這里小插曲很多....
3.1 Ubuntu下Nginx安裝 ,安裝的Nginx 1.4.6 一直無法啟用。查看日志是80端口被占用,如該文章內(nèi)所示 Starting nginx: [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)。 但是,并沒有找到對(duì)應(yīng)文件需要修改的地方。于是kill 掉所有的80端口進(jìn)程。重啟服務(wù),未果。
3.2 卸載Nginx 沒法好好玩,于是打算卸載重裝。在根目錄下用命令 find -name ‘nginx’ 找到相關(guān)文件 rm 掉,再運(yùn)行apt-get remove nginx刪除。然而卸載后的每次重裝,都會(huì)遇到缺少nginx.conf或者缺少自啟用腳本等問題。后來跑偏了。
3.3 更改Nginx源 跑偏不是沒有好處的,路過一個(gè)比較有趣的博客,謝謝博主,指出更改源的方案,不然我卸載10次重裝10次還是找不到問題。更改源之后install 的版本是 1.10.3,馬上就跑動(dòng)了....(自知心酸的落淚)
3.4 Nodejs綁定域名與反向代理 (注:很多類似的文件都是配置Apache PHP的,看清是否是nodejs的就好。)
附上配置:
upstream nodejs{
server 127.0.0.1:3303; #項(xiàng)目的服務(wù)開啟監(jiān)聽端口
# server 127.0.0.1:3001;
keepalive 64;
}
server {
listen 3000;
server_name www.xxxx.xyz xxxx.xyz;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Connection "";
proxy_pass http://nodejs; #這里的nodejs應(yīng)該是上面的upstream中的nodejs一致。所以這里取的應(yīng)該是其server地址(待確定)
}
}
參考文檔:
3.4.1 [Nginx配置文件nginx.conf中文詳解][7]
3.4.2 [nginx服務(wù)器綁定域名和設(shè)置根目錄的方法][8]
3.4.3 [用 nodejs 做反向代理服務(wù)器][9]
3.4.5 [詳述:Nginx請(qǐng)求反向代理][10]
3.5 一切就緒,開啟node服務(wù),用域名訪問,no problem~。但是在小程序上能否在真機(jī)上測(cè)試,這個(gè)我還沒弄。
3.6 附上常用弄服務(wù)器時(shí)用到的命令:
apt-get update // 更新軟件源
apt-get install nginx // 安裝nginx
echo $? // 查看命令執(zhí)行結(jié)果,0為無異常
nginx -v // 查看安裝后的nginx版本
/etc/init.d/nginx start // 開啟nginx服務(wù)
ps -ef|grep nginx // 查看與nginx有關(guān)的進(jìn)程
lsof -i:80 // 查看占用80端口的服務(wù)
find -name 'nignx' // 在cd / 后執(zhí)行該命令,找到名為nginx的文件夾的路徑
rm -rf /ect/nginx // 刪除/etc路徑下的nginx文件夾
apt-get remove nginx // 卸載nginx
apt-get remove nginx* // 卸載nginx與nginx相關(guān)的包
vim vhost.conf // 編輯vhost.conf文件
3.7 上述配置出來的是http,若要配置成https的話,根據(jù)證書安裝指引的步驟做即可。
如有不對(duì)的地方,請(qǐng)指出,感謝~
工作日 8:30-12:00 14:30-18:00
周六及部分節(jié)假日提供值班服務(wù)