Linux CentOS7 上搭建node服务

867 阅读3分钟

前言

近期在准备搭建一个vue.js+node.js全栈开发的博客,之前由于没有云服务器搭建经验,这篇文章做一下相关的记录,后续再深入学习研究。

Linux 源码编译安装node.js

开篇说了我会尝试建立一个vue.js+node.js全栈开发的博客,自然这个站点会基于node.js构建后端。

Linux下node有多种安装方式,这里我们手工安装官方最新版本。

1.安装编译环境

我的CentOS版本是7.2,安装前先安装编译环境,如gcc编译器:

yum install -y gcc gcc-c++ openssl-devel 

然后执行gcc -v运行正常:

...
gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)

2.检查和核对Python版本

Node.js环境需要Python2.6以上,我们需要检查,如果不是则需要安装和升级最新版Python。

python

退出python命令行使用exit() 命令或者Ctrl-D快捷键。

3.安装最新版本Node.js

然后依次执行:

cd /usr/local
mkdir node
cd node

下载:

wget https://nodejs.org/dist/v10.14.0/node-v10.14.0-linux-x64.tar.xz

***.tar.xz格式文件需要两部解压步骤,依次执行:

xz -d node-v10.14.0-linux-x64.tar.xz
tar -xvf node-v10.14.0-linux-x64.tar

配置环境目录:

ln -s /usr/local/node/node-v10.14.0-linux-x64/bin/node /usr/local/bin/node
ln -s /usr/local/node/node-v10.14.0-linux-x64/bin/npm /usr/local/bin/npm

然后检查node是否正确安装:

node -v

如果正确打印出版本则正确安装。

Linux Nginx ssl证书部署

我是在腾讯云上部署的,在这里申请免费的SSL证书:申请免费证书。申请完了后下载证书然后可以利用上面说的Filezilla上传到服务器上,参考这里的文档Nginx 证书部署

  • 下载解压证书,Nginx文件夹内获得SSL证书文件 1_www.domain.com_bundle.crt 和私钥文件 2_www.domain.com.key,
  • 将域名 www.domain.com 的证书文件1_www.domain.com_bundle.crt 、私钥文件2_www.domain.com.key保存到同一个目录,例如/usr/share/nginx目录下。
  • 更新Nginx根目录下conf/nginx.conf 文件。

这里重点说说更新nginx.conf文件,这时候我们就需要使用nginx -t来查找nginx配置文件,并使用vi命令修改该配置文件,如下:

[root@localhost ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

打开 vim 修改nginx.conf文件:

vim /etc/nginx/nginx.conf

主要修改server:nginx官方文档

server {
    listen       80;
    server_name  www.domain.com;

    listen 443 ssl;
    # ssl on;
    ssl_certificate /usr/share/nginx/1_www.domain.com_bundle.crt;
    ssl_certificate_key /usr/share/nginx/2_www.domain.com.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

配置完成后,正确无误的话,重启nginx:

systemctl restart nginx

就可以使 www.domain.com 来访问了。

注:(配置关键字段)

配置文件参数	        说明
listen 443	        SSL 访问端口号为 443
ssl on	                启用 SSL 功能
ssl_certificate	        证书文件
ssl_certificate_key     私钥文件
ssl_protocols	        使用的协议
ssl_ciphers	        配置加密套件,写法遵循 openssl 标准

Linux 安装 MongDB 数据库

一、使用yum安装MongDB

1.配置MongoDB的yum源

创建yum源文件:

vim /etc/yum.repos.d/mongodb-org-3.4.repo

添加以下内容:

[mongodb-org-3.4]  
name=MongoDB Repository  
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/  
gpgcheck=1  
enabled=1  
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

这里可以修改 gpgcheck=0, 省去gpg验证

安装之前先更新所有包(可选操作) :

yum update

2.安装MongoDB

安装命令:

yum -y install mongodb-org

安装完成后

查看mongo安装位置

whereis mongod

查看修改配置文件 :

 vim /etc/mongod.conf

3.启动MongoDB

启动mongodb :

systemctl start mongod.service

停止mongodb :

systemctl stop mongod.service

查到mongodb的状态:

systemctl status mongod.service

设置开机启动

systemctl enable mongod.service

二、自定义安装MongDB

进入/usr/local目录下载mongodb安装包,并解压 tgz(以下演示的是 64 位 Linux上的安装):

cd /usr/local
#下载
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.1.5.tgz
#解压
tar -zxvf mongodb-linux-x86_64-4.1.5.tgz
#修改目录
mv mongodb-linux-x86_64-4.1.5 mongodb

创建数据库目录:

进入mongodb目录,建立一个data文件夹,然后建立db和logs文件夹。

cd mongodb/
mkdir data
cd data
mkdir db
mkdir logs
cd logs/
touch mongod.log

配置mongod命令:

进入mongodb目录,建立一个etc文件夹 然后配置mongod.conf

cd mongodb/
mkdir etc
cd etc/
vim mongod.conf

配置如下:

dbpath = /usr/local/mongodb/data/db #数据文件存放目录

logpath = /usr/local/mongodb/data/logs/mongod.log #日志文件存放目录
port = 27017  #端口
fork = true  #以守护程序的方式启用,即在后台运行
# nohttpinterface = true
auth=true
bind_ip=0.0.0.0

MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH 路径中:

export PATH=/usr/local/mongodb/bin:$PATH

启动

在/usr/local/mongodb/bin下

mongod -f ../etc/mongod.conf 或 ./mongod -f ../etc/mongod.conf

关闭

mongod -f ../etc/mongod.conf --shutdown  或./mongod -f ../etc/mongod.conf --shutdown

开启端口

firewall-cmd --zone=public --add-port=27017/tcp --permanent

查看端口

firewall-cmd --permanent --query-port=27017/tcp

重启防火墙

firewall-cmd --reload

查看 mongodb 进程:

ps aux |grep mongodb

检查端口是否已被启动:

netstat -lanp | grep 27017

Linux 使用 MongDB 数据库

创建用户

创建用户管理员:
   use admin
   db.createUser({user:"root",pwd:"root123456",roles:["userAdminAnyDatabase"]})
   db.auth('root','root123456')
 以用户管理员身份登录,并切换数据库,创建数据库用户:
   切换到test数据库
   use test
   创建用户名、密码、角色
   db.createUser({user:"username",pwd:"@user123456*",roles:[{role:"readWrite",db:"securitydata"}]})
   设置mongodb配置中的auth为true(/etc/mongod.conf):
   security:
     authorization: enabled
   验证mongodb数据库权限。
   db.auth('user','@user123456*')