上线笔记 ubuntu - nodejs

2021-02-05  本文已影响0人  kopsht

【未完, 缺部署和HTTPS】

ssh 登陆

  1. ssh root@ip (ssh -p [port] [username]@[ip])
  2. 挂载盘 fdisk -l
  3. df -h
  4. 配置账号权限 adduser [name]
  5. 账号授权 gpasswd -a [name] sudo
    sudo visudo (在nano 的 user privilege specification 中增加[name]的权限)
  6. 重启ssh功能 service ssh restart

无密码 ssh 登陆(同时在本机和服务器执行)

  1. 配置公钥和私钥
    ssh-keygen -t rsa -b 4096 -C "[email]"

  2. 配置ssh 代理 eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_rsa

  3. 在服务器创建授权文件:(在.ssh中) vi authorized_keys (esc -> wq!)

  4. 复制本地的公钥 id_rsa.pub的内容到 服务器的authorized_keys(cat -> vi -> i -> esc -> eq!)

  5. 修改文件权限 chmod 600 authorized_keys

  6. 重启服务 sudo service ssh restart

修改服务器默认登陆端口(安全)

  1. sudo vi /etc/ssh/sshd_config
  2. 修改端口端口可修改范围 0~65536 (1~1024不要用)
  3. 在文件末尾增加 AllowUsers [name]
  4. 重启服务 sudo service ssh restart
  5. 重新登陆 ssh -p 8899 manager@124.71.194.225

关闭root 账户登陆(安全)

  1. sudo vi /etc/ssh/sshd_config
  2. PermitRootLogin no
  3. 重启ssh服务 sudo service ssh restart

配置 iptables 和 Fail2Ban (安全)

  1. 更新ubuntu sudo apt-get update && sudo apt-get upgrade
  2. 清空规则 sudo iptables -F
  3. 配置 sudo vi /etc/iptables.up.rules
*filter

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT // 允许所有建立起来的连接
-A OUTPUT -j ACCEPT //允许所有出去的连接
-A INPUT -p tcp --dport 443 -j ACCEPT // 允许 https 连接
-A INPUT -p tcp --dport 80 -j ACCEPT //允许80端口
-A INPUT -p tcp -m state --state NEW --dport 8899 -j ACCEPT //允许 8899 端口的ssh服务
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT //允许ping
-A INPUT -m limit 5/min -j LOG --log-prefix "iptables denied:" --log-level 7 //打印错误日志
// 排除掉那些60秒访问了150次以上的请求
-A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
-A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 150 -j DROP
//拒绝其他
-A INPUT -j REJECT
-A FORWARD -j REJECT

COMMIT
  1. 告诉配置项在哪里 sudo iptables-restore < /etc/iptables.up.rules
  2. 查看ufw是否激活: sudo ufw status
  3. 激活防火墙ufw: sudo ufw enable
  4. 防火墙开机自启动: sudo vi /etc/network/if-up.d/iptables.
#!/bin/sh
iptables-restore /etc/iptables.up.rules
  1. 对上述脚本赋予权限sudo chmod +x /etc/network/if-up.d/iptables
  2. 安装 Fail2Ban: sudo apt-get install fail2ban
    10.修改fail2ban的配置文件: sudo vi /etc/fail2ban/fail.conf
    bantime = 3600
    destemail = [email]
  3. 开启 fail2ban : sudo service fail2ban stop

搭建Nodejs 环境

  1. sudo apt-get update
  2. 安装工具: sudo apt-get install vim openssl build-essential libssl-dev wget curl git
  3. 安装nvm: wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
  4. 使用nvm安装nodejs : nvm install --lts
  5. 使用此版本的nodejs: nvm use --lts
  6. 默认系统中的版本就是此版本: nvm alias default v14.15.4
  7. 检查版本: node -v
  8. 安装淘宝源 npm install -g cnpm --registry=https://registry.npm.taobao.org
  9. 检查cnpm 版本 cnpm -v
  10. 增加系统监控数目: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
  11. 安装全局工具包 npm install pm2 webpack gulp grunt-cli -g
  12. 测试环境
const http = require('http')
http.createServer(function(req, res){
        res.writeHead(200, {'Content-Type': 'text/plain'})
    res.end('12334')
}).listen(8081)

console.log('server running')

借助 pm2 让 Nodejs 服务常驻

  1. pm2 start app.js
  2. 使用pm2 list 列出已跑起来的服务
  3. 看服务的具体信息 pm2 show [服务名]
  4. 实时日志 pm2 log

https://pm2.keymetrics.io/docs/usage/pm2-doc-single-page/

配置 nginx 反向代理

  1. 尝试关闭apache服务器 sudo service apache2 stop
  2. 删除apache:
    update-rc.d -f apache2 remove
    sudo apt-get remove apache2
  3. 更新包列表 sudo apt-get update
  4. 安装 nginx : sudo apt-get install nginx
  5. 配置nginx:
upstream [name] {
  server 127.0.0.1:8081;
}

server {
  listen 80;
  server_name [服务器IP, 如:124.71.194.225];

  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forward-For $proxy_add_xforwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Nginx-Proxy true;

    proxy_pass http://[域名];
    proxy_redirect off;
  }
}
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

更改域名的DNS根服务器

使用 dnspod

在 Ubuntu 上安装 MongoDB

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

注意: 阿里云服务器的源可能是阿里云的,将阿里云的源去掉sudo vi /etc/apt/apt.conf中的地址注释掉, 修改镜像文件 sudo vi /etc/apt/souces.list.d/mongodb-org.....list/ 改为阿里云 http:/mirrors.

-A INPUT -s 127.0.0.1 -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -d 127.0.0.1 -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT

sudo iptables-restore < /etc/iptables.up.rules

向线上服务器导入数据

mongorestore --host 127.0.0.1:29999  -d [文件名] [文件相对路径]

上线项目配置 MongoDB 数据库读写权限

上一篇 下一篇

猜你喜欢

热点阅读