连接服务器并创建新用户
ssh [email protected]
adduser xxz // 新增xxz用户
passwd xxz // 设置xxz密码
groupadd wheel // 新增wheel组
usermod -aG wheel xxz // 为wheel和xxz增加root权限
复制代码
本地
本地生成私钥/公钥
~ ssh-keygen -t rsa -b 4096 -C "[email protected]"
// 3个回车
复制代码
开启ssh代理
.ssh eval "$(ssh-agent -s)"
复制代码
加入代理中
.ssh ssh-add ~/.ssh/id_rsa
复制代码
服务器
服务器生成私钥和公钥
~ ssh-keygen -t rsa -b 4096 -C "[email protected]"
// 3个回车
复制代码
开启ssh代理
.ssh eval "$(ssh-agent -s)"
复制代码
加入代理中
.ssh ssh-add ~/.ssh/id_rsa
复制代码
生成授权文件authorized_keys
.ssh vi authorized_keys
复制代码
把想要免密登录服务器的电脑的公钥 ip_rsa.pub
复制 authorized_keys
服务端授权 authorized_keys
.ssh chmod 600 authorized_keys
复制代码
重启ssh 服务
// 乌班图
.ssh service ssh restart
// centos
.ssh systemctl restart sshd.service
复制代码
安装node
更新yum源
sudo yum update
复制代码
安装一些必备软件
sudo yum install vim openssl build-essential libssl-dev wget curl git
复制代码
安装nvm
网址
https://github.com/creationix/nvm
复制代码
代码段
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
复制代码
使用nvm安装node
nvm install node // 安装最新
复制代码
注册cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
复制代码
安装一些包
npm i pm2 webpack vue-cli -g
复制代码
nginx
安装nginx
yum install nginx
复制代码
新增conf文件
// 进入nginx的conf.d目录
cd /etc/nginx/conf.d
// 新增配置
sudo vi xgjun-cn-3000
复制代码
conf内容
upstream app {
server 139.199.209.96:3000
}
server {
listen 80;
server_name 139.199.209.96;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header HOST $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_pass http://xgjun.cn;
proxy_redirect off;
}
}
~
复制代码
查看nginx.conf
nginx sudo vi nginx.conf
// include /etc/nginx/conf.d/*.conf;
复制代码
检测nginx配置文件是否正确
nginx sudo nginx -t
复制代码
重启nginx
sudo service nginx restart
// sudo systemctl start nginx
复制代码
node代码部署
将本地的id_rsa.pub复制到码云
cat ~/.ssh/id_rsa.pub
https://gitee.com/profile/sshkeys
复制代码
用ssh拉去仓库
提示就输入yes
git clone [email protected]:xuxiaozhou08/deploy.git
复制代码
将服务器的id_rsa.pub复制到码云
cat ~/.ssh/id_rsa.pub
https://gitee.com/profile/sshkeys
复制代码
用ssh拉去仓库
提示就输入yes
git clone [email protected]:xuxiaozhou08/deploy.git
复制代码
pm2代码部署
本地安装pm2
npm i pm2 -g
复制代码
本地项目里面deploy新增ecosystem.json
文件
vi ecosystem.json
复制代码
内容
{
"apps":[
{
"name": "deploy", // 应用名称
"script":"app.js", // 启动的脚本
"env":{
"COMMON_VARIABLE":"true"
},
"env_production":{
"NODE_ENV":"production"
}
}
],
// 部署的任务
"deploy":{
"production":{
"user":"xxz", // 用户
"host":["139.199.209.96"], // 主机
"ref":"origin/master", // 主分支
"repo":"[email protected]:xuxiaozhou08/deploy.git", // 仓库地址
"path":"/www/web/production", // 部署到服务器的哪个位置
"ssh_options":"StrictHostKeyChecking=no", // 关闭ssh校验
"env": {
"NODE_ENV":"production"
}
}
}
}
复制代码
服务器创建目录
sudo mkdir /www/web/
sudo chmod 777 /www
复制代码
提交ecosystem.json代码
git add .
git commit -m '111'
git push origin master
复制代码
本地运行deploy
pm2 deploy ecosystem.json production setup
复制代码
服务器会出现3个文件夹
// 路径
/www/web/production
// current shared source
复制代码
修改bash
用户根目录
复制代码
修改代码后提交到git仓库后执行
pm2 deploy ecosystem.json production
复制代码
问题是centos运行后git的head会一直停在初始化状态
{
"apps":[
{
"name": "deploy", // 应用名称
"script":"app.js", // 启动的脚本
"env":{
"COMMON_VARIABLE":"true"
},
"env_production":{
"NODE_ENV":"production"
}
}
],
// 部署的任务
"deploy":{
"production":{
"user":"xxz", // 用户
"host":["139.199.209.96"], // 主机
"port":"22", // 端口
"ref":"origin/master", // 主分支
"repo":"[email protected]:xuxiaozhou08/deploy.git", // 仓库地址
"path":"/www/web/production", // 部署到服务器的哪个位置
"ssh_options":"StrictHostKeyChecking=no", // 关闭ssh校验
// 加粗git pull origin master
"post-deploy" : "git pull origin master && npm install && pm2 startOrRestart ecosystem.json --env production",
// Environme
"env": {
"NODE_ENV":"production"
}
}
}
}
复制代码
域名解析
ip指向域名
修改/etc/nginx/conf.d中的xgjun-cn-3000.conf
upstream app {
server 139.199.209.96:3000;
}
server {
listen 80;
# server_name 139.199.209.96;
server_name www.xgjun.cn;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header HOST $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_pass http://app;
proxy_redirect off;
}
}
复制代码
重启nginx
sudo service nginx restart
复制代码
https
申请证书可以通过腾讯云
上传证书
scp -P 22 ./2_www.xgjun.cn.key [email protected]:/home/xxz
scp -P 22 ./1_www.xgjun.cn_bundle.crt [email protected]:/home/xxz
复制代码
修改nginx配置
找到
cd /etc/nginx/conf.d/
复制代码
修改
参考https://cloud.tencent.com/document/product/400/4143
代码
upstream api {
server 139.199.209.96:3001;
}
server {
listen 80;
# server_name 139.199.209.96;
server_name api.xgjun.cn;
#rewrite ^(.*) https://$host$1 permanent;
return 301 https://api.xgjun.cn$request_uri;
}
server {
listen 443;
server_name api.xgjun.cn; #填写绑定证书的域名
ssl on;
ssl_certificate /home/xxz/1_api.xgjun.cn_bundle.crt;
ssl_certificate_key /home/xxz/2_api.xgjun.cn.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
// 注意空格
if ($ssl_protocol = "") {
rewrite ^(.*) https://$host$1 permanent;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header HOST $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_pass http://api;
proxy_redirect off;
}
}
复制代码
mongo ->centos
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
进入目录
cd /etc/yum.repos.d
复制代码
创建
sudo vi mongodb-org-3.6.repo
复制代码
写入内容
[mongodb-org-3.4]
name = MongoDB 3.4版本库
baseurl = https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck = 0
enabled = 1
gpgkey = https:// www.mongodb.org/static/pgp/server-3.6.asc
复制代码
安装
sudo yum install -y mongodb-org
复制代码
开启mongo
sudo service mongod start
复制代码
测试mongo
mongo
复制代码
设置用户名密码并且授权
use admin
// 新增管理员
db.createUser({user:'xxz_ad',pwd:'ai081012',roles:[{role:'userAdminAnyDatabase',db:'admin'}]})
// 授权
// 账号 密码
db.auth('xxz_ad','ai081012')
复制代码
修改mongo.conf配置文件进行用户登陆验证
mongo.conf路径
/etc/mongod.conf
复制代码
// 找到#security修改为如下
security:
authorization:'enabled'
复制代码