阿里云centos搭建nodejs服务器(一)

趁着双十一阿里云搞活动,三年299,加团就可以购买,顺便学习一下,做一个笔记。
选的的centOS

image.png

1. 更多/修改远程密码
2. 更多/重置密码 是重置的root密码
3. 远程链接

进入以后,输入root,password是你刚刚设置的密码。重设密码以后需要重启服务器。


阿里云centos搭建nodejs服务器(一)_第1张图片
image.png
root
useradd [yourname] // 创建一个用户明
passwd [yourname] // 确认用户名
//结下来会提示你输入密码
// 再次输入密码就完成了

阿里云centos搭建nodejs服务器(一)_第2张图片
image.png

在你本地输入:ssh yourname@ip地址(公)就能连上你的服务器啦。

接下来就可以愉快的在本地操作了。
首先安装nodejs(注意是nodejs ,不带js会找不到包)


阿里云centos搭建nodejs服务器(一)_第3张图片
image.png

这样是因为还没有给自己的用户添加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

  1. 登录ECS管理控制台,并在安全组中 添加安全组规则 放行端口(如本示例中为TCP 3000端口)。

    阿里云centos搭建nodejs服务器(一)_第4张图片
    image.png

    阿里云centos搭建nodejs服务器(一)_第5张图片
    image.png

    阿里云centos搭建nodejs服务器(一)_第6张图片
    image.png

    阿里云centos搭建nodejs服务器(一)_第7张图片
    image.png

    image.png

  2. (可选)如果您的实例中开启了防火墙,必须添加端口的入站规则(如本示例中为TCP 3000端口)。

  3. 在本地机器的浏览器中输入 http://实例公网IP地址:端口号 访问项目。

    阿里云centos搭建nodejs服务器(一)_第8张图片
    image.png

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 :the interpreter pm2 should use for executing app (bash, python...)。比如你用的coffee script来编写应用

 pm2 start ~/example.js --watch 
// 完整参数命令:
// 可用来替代刚刚的 node  ~/example.js 
阿里云centos搭建nodejs服务器(一)_第9张图片
image.png

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 // 删除数据
阿里云centos搭建nodejs服务器(一)_第10张图片
image.png

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   //    启动

image.png
image.png

阿里云centos搭建nodejs服务器(一)_第11张图片
image.png

将80端口转发到3000

cd ..
cd  conf
sudo vim nginx.conf
//   增加proxy_pass 
cd ..
cd sbin
sudo ./nginx -s reload
阿里云centos搭建nodejs服务器(一)_第12张图片
image.png

阿里云centos搭建nodejs服务器(一)_第13张图片
image.png

阿里云centos搭建nodejs服务器(一)_第14张图片
image.png

可以通过scp命令将本地文件上传至服务器 -r 是文件夹, pwa可以查看你服务器上文件的位置

image.png

scp -r 本地文件拖进来 用户名@ip 服务器路径
image.png

nginx 静态文件配置

user root
location /book/js {
            alias /home/zhenping/book/js/_book/;
            index index.html;
 }
阿里云centos搭建nodejs服务器(一)_第15张图片
image.png

阿里云centos搭建nodejs服务器(一)_第16张图片
image.png

阿里云centos搭建nodejs服务器(一)_第17张图片
image.png

配置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;
        }
    }
阿里云centos搭建nodejs服务器(一)_第18张图片
image.png

接下来,将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;

待续

你可能感兴趣的:(阿里云centos搭建nodejs服务器(一))