服务器部署步骤
- 购买自己的域名
- 域名备案
- 购买服务器
- 配置服务器应用环境
- 安装配置服务器
- 项目远程部署和发布与更新
1.2 购买域名 [#](#t01.2 购买域名)
1.3 云主机 [#](#t11.3 云主机)
1.4 购买阿里云 [#](#t21.4 购买阿里云)
- 选择配置
- 镜像 Ubuntu 16.04 64位
1.5 备案 [#](#t31.5 备案)
2 服务器 [#](#t42 服务器)
2.1 连接服务器 [#](#t52.1 连接服务器)
ssh root@39.96.114.57
2.2 创建用户 [#](#t62.2 创建用户)
adduser juejin
2.3 赋予权限 [#](#t72.3 赋予权限)
gpasswd命令是Linux下工作组文件/etc/group和/etc/gshadow管理工具。
-a:添加用户到组
-d:从组删除用户
gpasswd -a juejin sudo
2.4 添加sudo权限 [#](#t82.4 添加sudo权限)
Linux用户配置sudo权限(visudo),如果你用visudo来编辑这个文件,那么它会帮你自动做很多事情,比如说语法检查,加锁防止别人同时修改这个文件等等
sudo visudo
visudo其实是打开/etc/sudoers
# User privilege specification
juejin ALL=(ALL:ALL) ALL
- 1 "From ALL hosts juejin" 从任何机器登录,都可以应用接下来的规则
- 2 "Run As ALL User",juejin可以以任何用户的身份运行一些命令
- 3 "Run As All Groups" juejin可以以任何用户组的身份运行一些命令
- 4 前面的规定适用于任何命令
juejin这个用户可以从任何机器登录,以任何用户和用户组的身份运行任何命令。 保存并退出
Ctrl+X
shift + y
2.5 SSH无密码登录 [#](#t92.5 SSH无密码登录)
ssh 公钥认证是ssh认证的方式之一。通过公钥认证可实现ssh免密码登陆,git的ssh方式也是通过公钥进行认证的。
2.5.1 本地生成公钥和私钥 [#](#t102.5.1 本地生成公钥和私钥)
ssh-keygen --help
cd ~/.ssh
ssh-keygen -t rsa -b 4096
- -t 指定加密方式
- -b 字节数
2.5.2 开启ssh代理 [#](#t112.5.2 开启ssh代理)
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
2.5.3 服务器配置 [#](#t122.5.3 服务器配置)
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
ssh-keygen -t rsa -b 4096
2.5.4 把本地的公钥上传到服务器授权文件中 [#](#t132.5.4 把本地的公钥上传到服务器授权文件中)
vi ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
sudo service ssh restart
2.6 增加安全等级 [#](#t142.6 增加安全等级)
sudo vi /etc/ssh/sshd_config
vi /etc/ssh/sshd_config
Port 2222
AllowUsers juejin
PermitRootLogin yes
PasswordAuthentication yes
sudo service ssh restart
/etc/init.d/ssh restart
lsof -i:2222
ssh -p 2222 juejin@39.96.114.57
2.7 配置防火墙 [#](#t152.7 配置防火墙)
2.8 安装软件 [#](#t162.8 安装软件)
sudo apt-get update
sudo apt-get install wget curl git
2.9 安装node [#](#t172.9 安装node)
-
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash nvm install stable node -v npm i cnpm -g npm i nrm -g
2.10 编写node程序 [#](#t182.10 编写node程序)
var http = require('http');
const hostname = '39.96.114.57';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
2.11 启动程序 [#](#t192.11 启动程序)
强大的进程管理器,进程异常退出时pm2会尝试重启
npm install pm2 -g
用pm2启动node |命令|用途| |:----|:----| |pm2 start app.js --name "crawl"|启动应用| |pm2 list|查看所有应用| |pm2 restart crawl|重启应用| |pm2 stop crawl|停止应用| |pm2 delete crawl|删除应用|
node app.js
pm2 start app.js --name 'juejin'
2.12 nginx [#](#t202.12 nginx)
Nginx是一个高性能的HTTP和反向代理服务器
2.12.1 安装 [#](#t212.12.1 安装)
apt-get install nginx
2.12.2 nginx命令 [#](#t222.12.2 nginx命令)
名称 | 命令 |
---|---|
启动nginx | nginx -c /etc/nginx/nginx.conf |
关闭 nginx | nginx -s stop |
重读配置文件 | nginx -s reload kill -HUP nginx |
常用命令 | service nginx {start stop status restart reload configtest} |
2.12.3 nginx配置 [#](#t232.12.3 nginx配置)
cd /etc/nginx/sites-enabled
sudo vi juejin.conf
upstream juejin{
server 39.96.114.57:3000;
}
server {
listen 80;
server_name 39.96.114.57;
location / {
proxy_pass http://juejin;
}
}
2.12.4 重启nginx [#](#t242.12.4 重启nginx)
sudo nginx -s reload
2.13 mysql [#](#t252.13 mysql)
安装mysql
sudo apt-get install mysql-server
apt install mysql-client
apt install libmysqlclient-dev
-
2.14 克隆项目 [#](#t262.14 克隆项目)
Gitalking ...
Be the first guy leaving a comment!