zoukankan      html  css  js  c++  java
  • CentOS8 部署 Node 环境、Nginx(ECS系列一)

    登录ECS

    使用公共镜像 CentOS8.0 创建 ECS 之后,在实例详情中,先重置实例密码,然后远程连接 Workbench.
    首次登陆,可使用:
    用户名: root, 密码即刚刚创建

    后续可创建子账户后登陆...
    创建用户:

    useradd -m 用户名
    

    -m 表示创建用户目录,然后给这个用户名创建密码

    passwd 用户名
    

    输入密码回车后,再次输入密码确认即可。通过 su 用户名 可以切换用户。
    本文中,依然采用root账户进行以下操作

    点菜单栏 - 视图 - 文件树,打开文件夹目录,这样看起来更清晰

    部署Node

    登录后处于 root 文件夹下(用户文件夹。若是通过其他账户登录,进入时处于home下的账户文件夹),可进入 opt 文件夹下安装 node
    阿里云教程中,安装的是 node-v6.9.5-linux-x64.tar.xz 版本,显然是很久以前的版本了,我们可以根据实际的当前稳定版本进行安装,官网上目前最新的是 12.18.1,所以这里作调整

    cd /opt
    wget https://nodejs.org/dist/v12.18.1/node-v12.18.1-linux-x64.tar.xz
    

    解压安装

    tar xvf node-v12.18.1-linux-x64.tar.xz
    

    创建软链接

    ln -s /opt/node-v12.18.1-linux-x64/bin/node /usr/local/bin/node
    ln -s /opt/node-v12.18.1-linux-x64/bin/npm /usr/local/bin/npm
    

    查看版本

    node -v
    npm -v
    

    随后安装 cnpm,并创建软链接

    npm install cnpm -g --registry=https://registry.npm.taobao.org
    ln -s /opt/node-v12.18.1-linux-x64/bin/cnpm /usr/local/bin/cnpm
    

    查看是否安装正确

    cnpm -v
    

    部署测试

    在 home 文件夹中写入测试文件,这里可以直接沿用 阿里云教程demo

    cd /home
    touch example.js
    vim example.js
    

    i 进入编辑,输入以下内容

    
    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
    ');
    }); 
    
    server.listen(port, hostname, () => { 
        console.log(`Server running at http://${hostname}:${port}/`);
    });
    

    随后按 Esc 退出编辑模式,输入 :wq 并回车。
    当然,也可以直接在左侧文件树中进行以上操作,右键home文件夹,新建文件 example.js,双击打开,复制以上代码,随后点击右上角保存即可,更为简单。

    运行

    node example.js
    

    在实例详情中,点左侧本实例安全组,配置安全组,入方向,手动添加,授权对象 源设为当前设备IP,0.0.0.0/0 表示允许所有ip.
    在浏览器中打开 http://<ECS实例公网IP地址>:端口号,本例中端口为 3000。即可运行。
    可安装 pm2 代替 forever 做进程守护

    cnpm i -g pm2
    

    此时,运行命令为

    
    # 启动参数
    # --watch
    #   监听变化,自动重启
    pm2 start example.js --watch
    

    关于 pm2 的相关命令
    重启: pm2 restart example.js
    查看进程状态: pm2 list
    停止: pm2 stop app_name|app_id
    停止所有: pm2 stop all

    安装Git

    yum命令安装:

    sudo yum install -y git
    

    -y 表示自动选择 yes, 检查安装成功 git --version

    Git 配置

    配置提交代码的用户账号

    git config --global user.name "Your Name"
    git config --global user.email "email@example.com"
    

    生成公钥和私钥(用于github):

    ssh-keygen -t rsa -C "youremail@example.com"
    

    过程中会询问存储位置,选择默认位置即可,如/root/.ssh/id_rsa.pub,将生成的公钥(id_rsa.pub文件中的内容)拷贝到github SSH keys中,即可开始使用。

    安装 Nginx

    安装依赖

    • gcc 环境可以编译 C,C++,Ada,Object C和Java等语言
    yum install -y gcc
    
    • pcre和pcre-devel是一个perl库,nginx的http模块使用pcre来解析正则表达式
    yum install -y pcre pcre-devel
    
    • zlib zlib-devel,nginx各种模块中需要使用gzip压缩,zlib库提供了开发人员的压缩算法
    yum install -y zlib zlib-devel
    
    • openssl openssl-devel,openssl是web安全通信的基石,用于安全通信
    yum install -y openssl openssl-devel
    

    当然,可以一句命令概括

    yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
    

    安装 nginx

    切换到 opt 文件夹。
    进入nginx 下载页 http://nginx.org/en/download.html,选择合适版本,右键 - 复制链接地址
    回到系统中,下载并解压文件

    wget http://nginx.org/download/nginx-1.18.0.tar.gz
    tar -zxvf nginx-1.18.0.tar.gz
    

    进入 nginx-1.18.0 文件下,使用默认配置开始安装

    cd nginx-1.18.0
    ./configure
    

    执行编译并安装

    make && make install
    

    没有报错的话,表示nginx已成功安装。
    nginx 默认运行在 80 端口,在ecs防火墙中授权 80 端口,然后执行nginx安装目录下面的sbin/nginx 开启 nginx

    /usr/local/nginx/sbin/nginx
    

    在浏览器中打开ECS公网IP,就能看到 Nginx 欢迎界面了

    nginx 相关命令

    关闭nginx

    nginx -s quit
    nginx -s stop
    

    重启nginx

    nginx -s reload      # 重新载入配置文件
    nginx -s reopen      # 重启 Nginx
    

    查询nginx主进程号

    ps -ef | grep nginx
    

    停止

    kill -QUIT 主进程号
    kill -TERM 主进程号
    kill -9 nginx       # 强制停止
    

    netstat 命令参数:

    -a:列出所有网络状态,包括 Socket 程序;
    -c秒数:指定每隔几秒刷新一次网络状态;
    -n:使用 IP 地址和端口号显示,不使用域名与服务名;
    -p:显示 PID 和程序名;
    -t:显示使用 TCP 协议端口的连接状况;
    -u:显示使用 UDP 协议端口的连接状况;
    -I:仅显示监听状态的连接;
    -r:显示路由表;
    

    如:查看80端口使用情况可用 netstat -ntlp |grep 80

    开机自启

    很多教程中使用 systemcel enable nginx.service 命令设置自动启动。然而执行的时候提示 nginx.service 不存在。
    若用 yum install 命令安装 nginx,会自动创建nginx.service文件。而上文中用的压缩包源码编译安装,所以需要自建此服务文件。

    • 创建nginx.service文件 vi /usr/lib/systemd/system/nginx.service
    • 写入
    
    [Unit]
    Description=nginx
    After=network.target
      
    [Service]
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/usr/local/nginx/sbin/nginx -s quit
    PrivateTmp=true
      
    [Install]
    WantedBy=multi-user.target
    

    Description:描述服务
    After:描述服务类别
    [Service]服务运行参数的设置
    Type=forking是后台运行的形式
    ExecStart为服务的具体运行命令
    ExecReload为重启命令
    ExecStop为停止命令
    PrivateTmp=True表示给服务分配独立的临时空间
    注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
    [Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

    设置开机启动,并查看状态

    
    systemctl enable nginx.service
    systemctl status nginx.service
    

    显示 inactive,杀掉程序再重新启动

    
    pkill -9 nginx
    systemctl start nginx
    
    systemctl status nginx.service
    

    再次查看状态,显示 active

  • 相关阅读:
    dubbo springcloud区别
    rpc
    centos7 安装docker
    vibox安装
    知识点
    spring cloud
    微服务设计原则
    工具类
    xss--知识点
    java基础--注解
  • 原文地址:https://www.cnblogs.com/_error/p/13201812.html
Copyright © 2011-2022 走看看