趁着双十一阿里云搞活动,三年299,加团就可以购买,顺便学习一下,做一个笔记。
选的的centOS
1. 更多/修改远程密码
2. 更多/重置密码 是重置的root密码
3. 远程链接
进入以后,输入root,password是你刚刚设置的密码。重设密码以后需要重启服务器。
root
useradd [yourname] // 创建一个用户明
passwd [yourname] // 确认用户名
//结下来会提示你输入密码
// 再次输入密码就完成了
在你本地输入:ssh yourname@ip地址(公)就能连上你的服务器啦。
接下来就可以愉快的在本地操作了。
首先安装nodejs(注意是nodejs ,不带js会找不到包)
这样是因为还没有给自己的用户添加root权限
su
密码:// 输入root密码
visudo
按 i 键进入, 找到 root ALL=(ALL) ALL 然后下面添加 [Yourname] ALL = (ALL) ALL
root ALL=(ALL) ALL
[yonghuming] ALL = (ALL) ALL
:wq //保存退出
su [用户名]
sudo yum install nodejs -y
node -v
npm -v //检查是否安装成功
使用NVM安装多版本
NVM(Node version manager)是Node.js的版本管理软件,使用户可以轻松在Node.js各个版本间进行切换。适用于长期做 node 开发的人员或有快速更新node版本、快速切换node版本这一需求的用户。
安装步骤:
直接使用git将源码克隆到本地的~/.nvm目录下,并检查最新版本。
yum install git
git clone https://github.com/cnpm/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
激活NVM。
echo ". ~/.nvm/nvm.sh" >> /etc/profile
source /etc/profile
如果报没有权限,先切换到root用户,输入
chmod +x /etc
// 若是还没有解决 chmod 777 /etc/profile
// 然后再切换到自己用户
列出Node.js的所有版本。
nvm list-remote
安装多个Node.js版本。
nvm install v6.9.5
nvm install v10.13.0
运行 nvm ls 查看已安装Node.js版本,当前使用的版本为v6.9.5。返回结果如下所示。
[root@iZXXXXZ .nvm]# nvm ls
v6.9.5
-> v7.4.0
system
stable -> 7.4 (-> v7.4.0) (default)
unstable -> 6.9 (-> v6.9.5) (default)
运行 nvm use v7.4.0 切换Node.js版本至v7.4.0。返回结果如下所示。
[root@iZXXXXZ .nvm]# nvm use v7.4.0
Now using node v7.4.0
NVM的更多操作请参考帮助文档:
nvm help
部署测试项目
新建项目文件example.js。
cd ~
touch example.js
使用vim编辑器打开项目文件example.js。
yum install vim
vim example.js //无权限就加sudo
输入 i,进入编辑模式,将以下项目文件内容粘贴到文件中。使用 Esc 按钮,退出编辑模式,输入 :wq,回车,保存文件内容并退出。
项目文件内容:
const http = require('http');
const hostname = '0.0.0.0';
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}/`);
});
运行项目。
node ~/example.js``
说明 您也可以使用命令 node ~/example.js & 将项目置于后台运行。
使用命令查看项目端口是否存在。
netstat -tpln
-
登录ECS管理控制台,并在安全组中 添加安全组规则 放行端口(如本示例中为TCP 3000端口)。
(可选)如果您的实例中开启了防火墙,必须添加端口的入站规则(如本示例中为TCP 3000端口)。
-
在本地机器的浏览器中输入
http://实例公网IP地址:端口号
访问项目。
pm2
全局安装
sudo npm install pm2@latest -g
用法
最简单的启用一个应用: pm2 start app.js
停止: pm2 stop app_name|app_id
删除:pm2 delete app_name|app_id
重启:pm2 restart app_name|app_id
停止所有:pm2 stop all
查看所有的进程:pm2 list
查看所有的进程状态:pm2 status
查看某一个进程的信息:pm2 describe app_name|app_id
参数说明
--watch:监听应用目录源码的变化,一旦发生变化,自动重启。如果要精确监听、不见听的目录,最好通过配置文件
-i --instances:启用多少个实例,可用于负载均衡。如果-i 0或者-i max,则根据当前机器核数确定实例数目,可以弥补node.js缺陷
--ignore-watch:排除监听的目录/文件,可以是特定的文件名,也可以是正则。比如--ignore-watch="test node_modules "some scripts"
-n --name:应用的名称。查看应用信息的时候可以用到
-o --output
-e --error
--interpreter
pm2 start ~/example.js --watch
// 完整参数命令:
// 可用来替代刚刚的 node ~/example.js
Mongodb
文档
cd /etc/yum.repos.d/
touch mongodb-org-4.0.repo
vim mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
sudo yum install -y mongodb-org
sudo service mongod start
sudo vim /etc/mongod.conf // 查看配置 将127.0.0.1改为0.0.0.0可在本地访问(不推荐)
sudo chkconfig mongod on //开机自启
sudo service mongod stop //停止
sudo service mongod restart // 重启
// 卸载 没有权限请加sudo
service mongod stop // 停止
yum erase $(rpm -qa | grep mongodb-org) // 删除安装包
rm -r /var/log/mongodb // 删除日志
rm -r /var/lib/mongo // 删除数据
nginx
yum install gcc-c++
yum install -y openssl openssl-devel
wget -c https://nginx.org/download/nginx-1.14.0.tar.gz
tar -zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0
./configure
// 为了后期https配置 方便,这里最好./configure --with-http_ssl_module 注释1
make
make install
whereis nginx
cd /usr/local/nginx/sbin/
sudo ./nginx // 启动
将80端口转发到3000
cd ..
cd conf
sudo vim nginx.conf
// 增加proxy_pass
cd ..
cd sbin
sudo ./nginx -s reload
可以通过scp命令将本地文件上传至服务器 -r 是文件夹, pwa可以查看你服务器上文件的位置
scp -r 本地文件拖进来 用户名@ip 服务器路径
nginx 静态文件配置
user root
location /book/js {
alias /home/zhenping/book/js/_book/;
index index.html;
}
配置https
第一步,一定要去阿里云吧443端口放开啊,血一样的教训。
若是报错 nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_
首先回到nginx注释一
./configure --with-http_ssl_module
然后 make
备份原nginx
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态)
cp ./objs/nginx /usr/local/nginx/sbin/
在linux环境下,cert应该和nginx.conf在同一个目录下,并且要用相对路径
否则会报错nginx: [emerg] BIO_new_file
修改nginx.conf,重启nginx
server {
listen 443;
server_name imzzp.com;
ssl on;
root html;
index index.html index.htm;
ssl_certificate cert/imzzp.pem;
ssl_certificate_key cert/imzzp.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:3000;
}
location /book/js {
alias /home/zhenping/book/js/_book/;
index index.html;
}
}
接下来,将http重定向到https,要注意的是静态文件在谷歌浏览器上会有缓存,可以换一个浏览器或者换一台设备查看
listen 80;
server_name imzzp.com;
rewrite ^(.*)$ https://$host$1 permanent;
//或者
listen 80;
server_name [imzzp.com](http://imzzp.com);
return 301 https://$server_name$request_uri;
待续