项目部署服务器
如果重新初始化服务器的磁盘之后,需要在本地删除 .ssh 文件夹下的
known_hosts 文件;
rm known_hosts
然后在登陆即可
1. 新建一个不依赖框架的站点:
其中homePage是html代码,核心代码如下
执行node app.js 开启服务,访问3000 端口,打开页面;
----
1 域名:阿里云--左侧:域名与网站
2 选择云服务器:
选择ubuntu 64位
这里安全组选择的是开放全部端口
点击控制台,查看购买的服务器:
3 备案,在控制台的顶部
----
在电脑上使用命令行访问,公网ip:
访问成功后显示:
默认的有个系统盘,是用来装系统的,上面也可以安装自己的代码,缺点是重置系统盘之后,会把原来的代码也删除掉,所以尽量有自己的数据盘,查看数据盘的命令是:
fdisk -l 这里是英文L的小写字母,如下图所示只有系统盘:
查看硬盘使用的情况命令: df -h
====
配置降低权限的用户 adduser imooc_manager
给新建用户配置权限:
先执行的是 gpasswd -a zyl sudo 把zyl放在root的sudo权限
Adding user zyl to group sudo 是执行的结果
然后会打开编辑器:
imooc_manager ALL=(ALL:ALL) ALL
编辑后退出:control+X
输入大写的Y 后保存,然后回车;
然后使用刚刚新建的用户进入服务器:
如果无法成功登陆,可以尝试重启服务器: service ssh restart
----
通过ssh实现无密码的登陆【如果git上之前配置过公钥,建议不要配置】
如何查看当前的公钥配置呢?
在根目录下执行pwd
执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。
然后执行 ls -a
查看是否有 .ssh 的文件夹
1)如果有ssh的文件夹:
其中 id_rsa.pub是公钥,pub是publish的意思
id_rsa 是私钥
如果担心对其造成影响,可以修改名字,生成备份:
2)如有没有ssh文件夹或者ssh文件夹为空,表示没有配置过ssh,这里新建ssh文件夹 mkdir .ssh
执行ssh-keygen ...的命令,设置私钥
这里不要设置密码和passphrase了,直接回车
生成了 id_rsa 和 id_rsa.pub两个文件
使用cat命令可以查看文件的内容
把ssh代理开起来,并且代理:
上面是在本地设置的,要在服务器上也设置一遍。
同上设置好后,在服务器端的 .ssh文件夹中新增文件:
vi authorized_keys
:wq!保存后退出,则生成该文件 authorized_keys
然后把本地生成的公钥放在服务这个文件中;之后该电脑再登陆服务器的时候,服务器会验证携带过来的私钥是否和服务器端保存的公钥匹配。
所以首先切换到本地,cat id_rsa.pub
复制其内容。
切换到服务器: vi authorized_keys
按下 i,切换到输入模式
然后粘贴公钥。
esc--:wq!
最后
1 修改文件权限 chmod 600 authorized_keys
2 重启服务器的ssh sudo service ssh restart
然后不要关闭当前服务器的终端,打开新的终端进行本地的连接,这样不用输入密码即可在本地连接服务器了
服务器默认端口是22
===========
apt-get 命令适用于 deb 包管理式的 Linux 操作系统(Debian、Ubuntu等),主要用于自动从互联网软件仓库中搜索、下载、安装、升级、卸载软件或操作系统。
Linux系统 apt-get 命令的使用:安装、更新、卸载软件包
sudo apt-get install vim openssl build-essential libssl-dev wget curl git
出现“unable to locate package”的是由于软件源出了问题(无法找到资源包)
解决代码:
使用下面代码对软件园进行更新修复
sudo apt-get update
sudo apt-get upgrade
更新所有软件:
然后再执行
sudo apt-get install vim openssl build-essential libssl-dev wget curl git
----------
要在服务器上安装 nvm和node;
首先在github上搜到nvm: https://github.com/nvm-sh/nvm
使用以下命令:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
【如果不成功,则单独安装node:ubuntu安装nodejs https://www.jianshu.com/p/c8929bea5fba】
安装成功后,切换控制台重新登陆服务器
安装node: nvm install v8.9.0
nvm use v8.9.0
nvm alias default v8.9.0 这样就指定了默认的版本
最后增加系统的监控数目:
echo fs.inotufy.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
永久生效方法如下:(建议采用此方法)
vim /etc/sysctl.conf
fs.inotify.max_user_watches = 1280000(后面值根据实际情况可自行调整)
fs.inotify.max_user_instances = 512
添加并运行/sbin/sysctl -p即可
然后安装一些工具:
npm i pm2 webpack gulp grunt-cli -g
安装成功后,实验一下,创建app.js文件 vi app.js
const http = require('http'); http.createServer(function(req,res){ res.setHeader('Content-Type', 'text/palin; charset=utf-8'); res.end('我是来自于真真的数据') }).listen(8081) console.log('服务开启在8081端口');
先esc,然后wq!保存退出;
如果中文显示是乱码的话:
输入vi ~/.vimrc
再执行 node app.js
然后再本地服务器访问,发现无法访问,这是因为防火墙没有8081的端口访问权限:
下面修改防火墙的配置:
sudo vi /etc/iptables.up.rules
然后重载该文件:
sudo iptables-restore < /etc/iptables.up.rules
再去访问ip地址可以看到页面;
但是如果关掉该服务,则无法访问该页面。所以要使用pm2处理:pm2 start app.js
使用 pm2 list 可以查看当前运行的node服务
使用 pm2 show app 可以查看具体服务的信息
====
使用 nginx 配置,让用户可以访问80端口,因为不是root用户下没有权限监听0-1024的端口
首先避免系统自己安装的 apaqi服务器,所以这里先卸载:
1 停止服务
2 删除服务
3 卸载服务
使用命令安装 nginx:
sudo apt-get install nginx
输入 nginx -v 显示版本号 表示安装成功
然后新增配置文件:
upstream myblog{ server 127.0.0.1:8081; } server { listen 80; server_name 39.106.194.136; 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_set_header X-Forwarded-Host $server_name; proxy_pass http://myblog; proxy_redirect off;
然后看看该配置文件有没有被引入:
执行 sudo nginx -t 即可检查文件是否正确;
sudo nginx -s reload 重启
==============
这是再访问 ip服务器,不用带端口号 即可访问了
[也就是配置了 访问默认端口80,会被指向到 8081端口上去]
============
域名与ip的绑定
===============
给服务器安装 mongodb数据库,访问网址
https://docs.mongodb.com/v3.4/tutorial/install-mongodb-on-ubuntu/
按照步骤:
左上角选择 mongoDB的版本,右侧出现对应的安装步骤,如果安装出错,可能是下载源默认是aliyun导致的,解决办法:
注释掉里面的代码,再重新安装。
安装成功之后执行上述代码,开启mongod服务,并且使用mongo.js:237:13 ,发现连接失败,需要配置防火墙
然后重新重载防火墙
最后执行 mongod 就可以进入数据库的控制台中;
终止mongodb数据的命令: sudo service mongod stop
启动mongodb数据库的命令: sudo service mongod start
可以修改文件 sudo vi /etc/mongod.conf 来修改mongodb的运行端口;
重启mongodb失败,因为对应的防火墙没有更新:
修改端口号
重启防火墙:
然后重启数据库:
mongo --port 19999
=============
把本地数据库中的文件,导入到服务器上的数据库初始化,步骤
1. 找到本地数据库,并提取初始化的json文件,把json文件进行打包压缩;
2 上传压缩后的文件到服务器端;
3. 服务器端解压上传的文件;
4 服务器端的数据库导入json文件;
---
1. 对本地数据库进行备份,打包文件
mongodump -h 127.0.0.1:27017 -d indust-app -o indust-app-backup
1) 127.0.0.1:27017 本地服务器地址和端口
2)indust-app本地的数据库名字
3)-o导出 indust-app-backup 是导出的文件夹名字
2 对生成的文件夹打包:
tar zcvf indust-app.tar.gz indust-app-backup
3 在本地服务器:把本地压缩包上传到服务器:
4 服务器上解压 上传的文件夹
tar xvf indust-app.tar.gz
5 把解压后的文件导入到数据库
-----
线上清空数据库:
创建数据库的用户操作权限
执行下面返回1 说明授权成功
类似的 给用户 imooc_movice_runner 添加数据库 imooc-movie的读写权限