首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >云服务器安装node+nginx+MongoDB

云服务器安装node+nginx+MongoDB

作者头像
踏浪
发布2019-07-31 11:09:29
3.8K0
发布2019-07-31 11:09:29
举报
文章被收录于专栏:踏浪的文章踏浪的文章

很早就买了一个云服务器,在腾讯云上面买的,当时买了好几年,用了几百块吧。具体的配置如下

服务器配置
服务器配置

本来就是想用来练手node+nginx+MongoDB的,一直没时间(其实是太懒了),所以没有着手做此项目。以前也弄过,不过总是断断续续的,而且没有记录,现在再想搭建的时候,已经忘得差不多了。写这篇文章的目的纯粹是为了记录下我搭建的步骤,以供以后查询。

购买服务器

首先就是需要购买一个服务器,不管是1+1+1(1G1核1M)还是其他的配置,只有有服务器就行,因为就是个练手的,没必要那么好。当然,如果你有钱,你可以选择黄金配置。腾讯云阿里云时不时的会有一些活动出来,如果有活动,我会放在本文的下方,以供你们参考。

安装系统

云服务器也是需要安装系统的,以腾讯云的云服务器为例

安装系统
安装系统

点击右边更多 ==> 重装(安装)系统 ==> 选择系统配置,输入密码开始重装

我这里是用的centerOS系统,你可以使用别的系统,当然,如果是其他的系统,那么安装工具的方法可能会有不同。

Tip:密码可能在第一次使用的时候需要重置。

进入服务器安装工具

上面的配置好了基本上就可以进入服务器安装工具(node+nginx+MongoDB等等)了。

那么,怎么进入呢?同样是腾讯云服务器

链接服务器

点击登录进入服务器
点击登录进入服务器

登录方式不同的操作系统是不同的,具体的操作系统可在在相关云服务器网站上面找到。

mac和linux用自带的终端或者使用 Item2 ,windows使用 Putty 是不错的选择。

以下操作按照mac的来

使用Item2连接服务器

ssh 用户名@IP地址

# 或者
ssh 用户名@IP地址 -p 端口号

链接错误

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:Ppgtgxjj3hnHqRH19D0hz5Vl34vUW0Dah1AJdpLoX6M.
Please contact your system administrator.
Add correct host key in /Users/cpx/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/cpx/.ssh/known_hosts:6
ECDSA host key for 118.24.6.33 has changed and you have requested strict checking.
Host key verification failed.

解决:删除之前的 known_hosts 文件

rm -rf ~/.ssh/known_hosts

# 或者更靠谱的方法
ssh-keygen -f .ssh/known_hosts -R 192.168.2.108(你的IP)

之后重新执行命令就可以链接成功

连接成功
连接成功

安装工具

安装可以使用centerOS中的 yum 工具,不过使用之前最好先 yum update 一波(可选操作)

Node

Node官网复制linux包(Linux Binaries (x64))链接,我当前版本的链接是 https://nodejs.org/dist/v10.16.0/node-v10.16.0-linux-x64.tar.xz 。不是Source Code

下载

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

解压

# 如果是 tar.gz 结尾的,使用 tar xvzf 解压
tar xvzf node-v10.16.0-linux-x64.tar.gz

# 如果是 tar.xz 结尾的,使用 tar xvJf 解压 注意 J 是大写的
tar xvJf node-v10.16.0-linux-x64.tar.zx

进入解压的node文件夹

cd node-v10.16.0

安装必要的运行文件

sudo yum install gcc gcc-c++

配置node,npm软连接,这样就可以在所有目录下使用,注意 -s 不要忘记了,不然会报错。

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

如果你不小心写错了软链,那么你可能会把它删除

删除软链
删除软链

查看 node, npm 版本

node -v
npm -v

出现如下请求,即创建成功

创建成功
创建成功

安装Nginx

yum install nginx

启动nginx

service nginx start
启动成功
启动成功

每一次修改了 nginx.conf 文件后都需要停止 nginx 并重启

强制停止: pkill -9 nginx
重启:service nginx restart

这里我使用的是yum安装的nginx,默认的安装目录是在 /etc/nginx 这个目录,nginx的配置文件也是在 /etc/nginx/nginx.conf 这里

配置 nginx 代理,编辑 nginx.conf

nginx 默认的服务配置只有一个80端口,配置如下

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  _;
    root         /usr/share/nginx/html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

这时候我想要添加一个8090端口,我的配置代码如下

server {
    listen       8090;
    server_name  _;
    root         /data/www/test/index.html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

此时报了错了,访问 118.24.6.33:8090 的时候出现了 403 Forbidden 的错误。

我们知道 HTTP 状态码中,403表示的是没有权限的意思,意思是上面的 /data/www/test/index.html; 我们没有权限访问

这个是因为nginx默认的配置文件中,第 5 行的代码中 user nginx;

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

我们需要将 user nginx; 改成 user root;

接着停止重启nginx服务。

这时候访问 118.24.6.33:8090 的时候出现了 404 Not Found 的错误。

再来看看HTTP协议中 404 表示的是没有资源,WHAT?WHY?

查看test文件夹
查看test文件夹

里面明明就有这个东西啊?

既然里面已经放了东西了,还是 404, 值得我们思考。我们看看默认的 80 端口的 root 配置为 /usr/share/nginx/html。在看看里面呢

/usr/share/nginx/html
/usr/share/nginx/html

里面是有一个html文件的。所以。这个 root 的值是一个目录而不是一个文件,所以,把 /data/www/test/index.html; 改成 /data/www/test 即可。这时候就可以访问 118.24.6.33:8090 了。

nginx接触的不多,所以会出现一些问题,不过都是在问题中慢慢摸索。当然,你也可以看看nginx的配置官网。不过东西有点多,大部分可能涉及不到,所以还是采坑了。

安装git

或许你会用到git clone以前的项目练手,或许你不会。不过还是说一下

使用 yum 安装(推荐。这个安装方便),安装后可直接使用

yum install git

到网站git linux 下载你需要的git版本。

下载解压与 node 相同,不在过多说明。

安装 git 的时候你可能还需要安装 curl-devel

yum install curl-devel

你还需要生成一个 key 用于git的识别

生成 sshkey,敲三次回车即可

ssh-keygen -t rsa -C"xxxxx@xxxxx.com"

查看你的 public key,并把他添加到github

cat ~/.ssh/id_rsa.pub

安装MongoDB

前往MongoDB官网选择对应版本,复制下面的链接

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.21.tgz
# 解压
tar vxzf mongodb-linux-x86_64-3.4.21

# 重命名
mv mongodb-linux-x86_64-3.4.21 mongodb

# 进入文件夹,变量创建 data 和 logs 文件夹
cd mongodb
mkdir -p logs
mkdir -p data

进入bin文件夹创建 mongodb.conf,并配置此文件。注意:mongodb 3.6以上版本不支持下面的配置

# 设置数据文件的存放目录
dbpath = /mongodb/data

# 设置日志文件的存放目录及其日志文件名
logpath = /mongodb/logs/mongodb.log

# 设置端口号(默认的端口号是 27017)
port = 27017

# 设置为以守护进程的方式运行,即在后台运行
fork = true

# nohttpinterface = true
nohttpinterface = true

启动:在bin文件夹下执行

./mongod --config mongodb.conf

以修复模式启动 mongodb:
./mongod --repair -f mongodb.conf

安装yarn(可选)

因为在本地使用npm的时候老是出问题,在本地基本上都是使用的是yarn。我怕在服务器上面如果安装依赖包的时候使用npm也像在本地一样出问题,所以还是觉得使用yarn更好

curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo

sudo yum install yarn

安装pm2

这个依赖是可以在服务器上面运行node项目的,相比于原生的node启动的文件

npm install -g pm2

# 设置软链
ln -s node的具体路径/bin/pm2 /usr/local/bin/pm2

PM2 的主要特性

  • 内建负载均衡(使用 Node cluster 集群模块)
  • 后台运行
  • 0 秒停机重载,我理解大概意思是维护升级的时候不需要停机.
  • 具有 Ubuntu 和 CentOS 的启动脚本
  • 停止不稳定的进程(避免无限循环)
  • 控制台检测
  • 提供 HTTP API
  • 远程控制和实时的接口 API ( Nodejs 模块,允许和 PM2 进程管理器交互 )

具体的使用方法

#启动
pm2 start xxx.js

#停止 (AppName|id) 如下放图
pm2 stop (AppName|id)
启动成功
启动成功

注意:这里pm2启动的是node的项目。而不是react,vue这些项目。我刚开始犯错了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 购买服务器
  • 安装系统
  • 进入服务器安装工具
    • 链接服务器
      • 安装工具
        • Node
        • 安装Nginx
        • 安装git
        • 安装MongoDB
        • 安装yarn(可选)
        • 安装pm2
    相关产品与服务
    云服务器
    云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档