node服务器部署系列———基础

node服务器部署系列———基础

本人使用的是阿里云的云服务器,Ubuntu 14.04 64位 专用vps网络,关于域名和服务器的购买、备案等,不做讲述

云主机开箱

  • 登录
    使用第三方ssh工具登录(阿里提供的远程登陆界面也行),使用主机公网IP、root名、密码(购买时设的)配置好连接
  • 硬盘查看
    查看硬盘个数fdisk -l
    查看使用情况df -h

基础安全增强

  • 创建新管理员
  1. 输入命令 adduser [new user name] 填写新用户密码及信息
  2. 输入命令 gpasswd -a [new user name] sudo 将新用户添加到sudo组(管理员组)中
  3. 输入命令 sudo visudo 打开用户权限配置,找到#User privilege specification 在它的root那项下面新加一行,写入 [new user name] ALL=(ALL:ALL) ALL 意思就是赋予新用户和上面root一样的权限,最后^x退出,按Y保存,按回车。
  • 修改默认登录端口(以后都使用新管理员登录)
    服务器的默认登录端口是22,一般很容易被扫描器扫描到,所以我们自己设个新的端口
  1. 输入命令 sudo vi /etc/ssh/sshd_config 打开ssh配置文件(提示密码自己盲敲密码)
  2. 在配置文件里找到Port 22这个位置,将数值22改成其他端口(例如:21352,39579),记住新的端口
  3. 使用专用网络的时候需要在阿里云安全组设置(服务器端口防火墙),要将新的端口添加到设置中,否则在下一次ssh登录服务器时,端口就会被防火墙拦截,就登不上了
  • 禁用root
    root是每个云服务器的超管,大家都知道,禁用后能一定程度提高服务器的安全
  1. 输入命令 sudo vi /etc/ssh/sshd_config 打开ssh配置文件
  2. 在配置文件末尾中找到 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

  • 使用淘宝镜像

  1. 临时使用npm --registry https://registry.npm.taobao.org install express
  2. 设置下载源npm config set registry https://registry.npm.taobao.org
  3. 查看源 get registry
  4. 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来反向代理和负载均衡
  1. 安装nginx, 输入命令 sudo apt-get install nginx 安装nginx
  2. 使用 cd 在路径 " /etc/nginx/conf.d "目录里新建站点的配置文件 (文件名例如:dharman-cn-8081.conf)
    编写配置文件
    在这里插入图片描述
  3. 在路径 " /etc/nginx" 下打开主配置文件 nginx.conf#server_tokens off 这条注释取消 # ,这样浏览器将会隐藏nginx 的信息,提高安全系数
    在这里插入图片描述

这样我们就基本部署好了一个服务器环境

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章