这一次并不是讲nodejs的,有点跑偏了,但是都是为小程序搭建后台做的准备。先说下缘故,在小程序内开启的websoket服务在真机上测试一直报错,找了几篇文档,首要确定的是端口和ssl是否有问题。因为ssl是用Linux的ope ...
这一次并不是讲nodejs的,有点跑偏了,但是都是为小程序搭建后台做的准备。先说下缘故,在小程序内开启的websoket服务在真机上测试一直报错,找了几篇文档,首要确定的是端口和ssl是否有问题。因为ssl是用Linux的openssl生成的,所以我对这个的怀疑度最高。为排除这一个问题,我决定申请一个域名和证书,绑定在我的服务器IP上。
这一路很是尴尬...
在腾讯云上申请一个域名(真的不是在打广告!!)一般第一年的比较便宜,我买了个.xyz的域名,第一年8块,续费每年99块(贼贵贼贵的),其他的第一年都上20+,30+,我打算第一次用,先买个便宜的试一下吧。.xyz和.cn/ .com/ .net等等域名的区别可参考百科,购买时系统会提醒的是备案地点的不同。买个域名后,就可以免费申请ssl证书,可用期限1年。
等申请通过之后,在买域名的地方,设置网站解析!!!就是把域名绑定在IP地址上。若是没设置,后面无论如何都没用,这坑我可是跌得够深的。笑着活下去。
在服务器(Ubuntu)上指定域名和路径文件。这里我用的是Nginx。这里小插曲很多....
3.1 Ubuntu下Nginx安装 ,安装的Nginx 1.4.6 一直无法启用。查看日志是80端口被占用,如该文章内所示 Starting nginx: [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)。 但是,并没有找到对应文件需要修改的地方。于是kill 掉所有的80端口进程。重启服务,未果。
3.2 卸载Nginx 没法好好玩,于是打算卸载重装。在根目录下用命令 find -name ‘nginx’ 找到相关文件 rm 掉,再运行apt-get remove nginx删除。然而卸载后的每次重装,都会遇到缺少nginx.conf或者缺少自启用脚本等问题。后来跑偏了。
3.3 更改Nginx源 跑偏不是没有好处的,路过一个比较有趣的博客,谢谢博主,指出更改源的方案,不然我卸载10次重装10次还是找不到问题。更改源之后install 的版本是 1.10.3,马上就跑动了....(自知心酸的落泪)
3.4 Nodejs绑定域名与反向代理 (注:很多类似的文件都是配置Apache PHP的,看清是否是nodejs的就好。)
附上配置:
upstream nodejs{
server 127.0.0.1:3303; #项目的服务开启监听端口
# 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应该是上面的upstream中的nodejs一致。所以这里取的应该是其server地址(待确定)
}
}
参考文档:
3.4.1 [Nginx配置文件nginx.conf中文详解][7]
3.4.2 [nginx服务器绑定域名和设置根目录的方法][8]
3.4.3 [用 nodejs 做反向代理服务器][9]
3.4.5 [详述:Nginx请求反向代理][10]
3.5 一切就绪,开启node服务,用域名访问,no problem~。但是在小程序上能否在真机上测试,这个我还没弄。
3.6 附上常用弄服务器时用到的命令:
apt-get update // 更新软件源
apt-get install nginx // 安装nginx
echo $? // 查看命令执行结果,0为无异常
nginx -v // 查看安装后的nginx版本
/etc/init.d/nginx start // 开启nginx服务
ps -ef|grep nginx // 查看与nginx有关的进程
lsof -i:80 // 查看占用80端口的服务
find -name 'nignx' // 在cd / 后执行该命令,找到名为nginx的文件夹的路径
rm -rf /ect/nginx // 删除/etc路径下的nginx文件夹
apt-get remove nginx // 卸载nginx
apt-get remove nginx* // 卸载nginx与nginx相关的包
vim vhost.conf // 编辑vhost.conf文件
3.7 上述配置出来的是http,若要配置成https的话,根据证书安装指引的步骤做即可。
如有不对的地方,请指出,感谢~