美文网首页
CentOS7 — Node.js + MariaDB + Ng

CentOS7 — Node.js + MariaDB + Ng

作者: 天听云道 | 来源:发表于2018-09-18 16:36 被阅读57次

    一、准备

    1.wget
    用于从指定的URL地址下载文件;
    wget很稳定同时支持断点下载,在窄带宽和不稳定网络中有很强的适应性。
    
    2.yum
    一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器;
    基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,
    可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
    
    3.Node.js
    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 
    Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
    
    4.NPM
    Node.js自带的包管理工具,是全球最大的开源库生态系统。
    
    5.MariaDB
    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护;
    MariaDB完全兼容MySQL,包括API和命令行;
    其存在的目的是因为MySQL被Oracle收购,存在不开源的风险,MariaDB是一个很好的代替品。
    
    6.Nginx
    Nginx 是一个高性能的 Web 和反向代理服务器。
    
    7.PM2
    PM2是一个带有负载均衡功能的Node应用的进程管理器。
    轻松实现性能监控、自动重启、负载均衡等功能
    
    8.登录服务器,第一次使用前更新下已安装的RPM软件包
    yum update -y
    

    二、Node.js 配置

    1.该文件件通常存放软件源代码
    cd /usr/local/src/
    
    2.下载
    wget https://nodejs.org/dist/v8.12.0/node-v8.12.0-linux-x64.tar.xz
    
    3.解压
    tar -vxJf node-v8.12.0-linux-x64.tar.xz
    
    4.将解压的`Node.js`目录移动到 /usr/local 目录下
    mv node-v8.12.0-linux-x64 /usr/local/node
    
    5.配置`Node`软链接到 /bin 目录
    ln -s /usr/local/node/bin/node /bin/node
    
    6.Node 中包含 npm,我们只需将其软链接到 bin 目录下
    ln -s /usr/local/node/bin/npm /bin/npm
    
    7.配置环境变量,将 /usr/local/node/bin 目录添加到 $PATH 环境变量中可以方便地使用通过 npm 全局安装的第三方工具
    echo 'export PATH=/usr/local/node/bin:$PATH' >> /etc/profile
    
    8.生效环境变量
    source /etc/profile
    
    9.检查时候安装成功
    node -v
    

    三、MariaDB 配置

    1.安装
    yum install mariadb-server mariadb
    
    2.启动MariaDB
    systemctl start mariadb    或     service mariadb start
    
    3.设置开机启动
    systemctl enable mariadb   或   chkconfig mariadb on
    
    4.相关简单配置
    mysql_secure_installation
    //首次会提示如下,直接回车
    Enter current password for root (enter for none):
    
    //设置密码
    Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
    New password: <– 设置root用户的密码
    Re-enter new password: <– 再输入一次你设置的密码
    //其他设置
    Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
    Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,
    Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
    Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
    //初始化MariaDB,登录
    mysql -uroot -p    //回车之后输入密码
    
    //配置MariaDB的字符集
    //客户端设置
    vim /etc/my.cnf.d/mysql-clients.cnf
    
    [mysql]
    default-character-set=utf8
    
    //服务端设置
    vim /etc/my.cnf.d/server.cnf
    
    [mysqld]
    init_connect='SET collation_connection = utf8_general_ci'
    init_connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_general_ci
    skip-character-set-client-handshake
    
    #开启慢查询
    slow_query_log = ON
    slow_query_log_file = /usr/local/mysql/data/slow.log
    long_query_time = 1
    
    //配置完成,退出MariaDB后重启MariaDB
    systemctl restart mariadb
    //进入MariaDB查看字符集
    mysql>show variables like "%character%";show variables like "%collation%";
    //显示如下
    
    MariaDB [(none)]> show variables like "%character%";show variables like "%collation%";
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | utf8                       |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | utf8                       |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    8 rows in set (0.00 sec)
    
    +----------------------+-----------------+
    | Variable_name        | Value           |
    +----------------------+-----------------+
    | collation_connection | utf8_general_ci |
    | collation_database   | utf8_general_ci |
    | collation_server     | utf8_general_ci |
    +----------------------+-----------------+
    3 rows in set (0.00 sec)
    ----字符集配置完成
    
    5.添加用户,设置权限
    //创建用户命令
    mysql>create user username@localhost identified by 'password';
    //直接创建用户并授权的命令
    mysql>grant all on *.* to username@localhost indentified by 'password';
    //授予外网登陆权限,但不能二级授权
    mysql>grant all privileges on *.* to username@'%' identified by 'password';
    //授予权限并且可以二次授权
    mysql>grant all privileges on *.* to username@'hostname' identified by 'password' with grant option;
    
    "%"表示任何主机都可以远程登录到该服务器上访问
    其中只授予部分权限把 其中 all privileges或者all改为: 
    `select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file `
    其中一部分。
    

    四、Nginx 配置

    1.安装
    yum install nginx
    
    2.检查是否安装成功
    nginx -t //有如下提示代表安装成功
    
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    
    3.Nginx操作
    systemctl start nginx.service  // 启动nginx
    systemctl stop nginx.service   // 停止nginx
    systemctl restart nginx.service // 重启nginx
    systemctl enable nginx.service // 设置开机启动
    
    Nginx启动后在浏览器中输入http:// 阿里云外网地址,你就可以看到一个nginx页面
    
    4.Nginx配置
    //Nginx配置文件为 /etc/nginx/nginx.conf
    server {
        listen 80;
        location / {
            proxy_pass http://127.0.0.1:3000; # 本地node启动的端口为3000
        }
    }
    
    注:每句结束都要写分号,不然重启会报如下错误
    Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
    
    //重启
    systemctl restart nginx.service
    
    二级域名实现代理:
    首先在域名解析时,设置域名解析到同一个服务器。
    其次设置多个代理时,可以在一个文件中设置多个server实现或者创建多个配置文件,如在/etc/nginx/nginx.conf中,有个关键字include。该字段指定配置文件位置
    
    include /etc/nginx/conf.d/*.conf;
    # 代表conf.d文件下所有.conf结尾的文件都为配置文件。下面就在一个文件中配置
    
    server {
        listen 80;
        server_name xxx.abc.com;
        location / {
            proxy_pass http://127.0.0.1:3000; # 本地node启动的端口为3000
        }
    }
    server {
        listen 80;
        server_name www.abc.com;
        location / {
            proxy_pass http://127.0.0.1:3001; # 本地node启动的端口为3000
        }
    }
    // 如果有二级域名和一级域名同时设置时,二级域名一定要放在前面。
    

    五、PM2配置

    1.全局安装
    npm install -g pm2
    2.创建软链接,使全局可以使用pm2命令
    ln -s /usr/local/node/bin/pm2 /bin/pm2
    3.常用命令
    //启动项目
    pm2 start app.js
    //查看进程状态
    pm2 status
    //关闭项目
    pm2 stop id   //id是进程id
    //启动相应进程的项目
    pm2 start id
    //设置pm2开机启动
    pm2 startup
    pm2 save
    //--watch参数,代码发生变化,pm2会帮你重启服务
    pm2 start app.js --watch
    

    六、常用软件

    1.git
    yum install git
    2.上传下载
    yum install lrzsz
    3.压缩解压
    yum install zip unzip
    

    [参考文章]
    https://blog.csdn.net/zhezhebie/article/details/73549741
    https://www.jianshu.com/p/7aad651bdbb4
    感谢以上网友的技术文章分享

    相关文章

      网友评论

          本文标题:CentOS7 — Node.js + MariaDB + Ng

          本文链接:https://www.haomeiwen.com/subject/nmxpnftx.html