博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node.js + MongoDB + Nginx 线上部署
阅读量:6374 次
发布时间:2019-06-23

本文共 3343 字,大约阅读时间需要 11 分钟。

Linux 版本为 centos7

安装 node.js

首先直接使用 yum 安装

$	yum -y install nodejs复制代码

但是此时并不是最新的版本, ,可以使用 node -v 查看;

升级到最新版本

首先安装 n(nodejs 管理工具)

$ npm install -g n复制代码

安装完成后安装 node.js 最新版本

$ n latest复制代码

然后使用

$ n复制代码

选择最新版本。

接着全局改变 nodejs 版本

$ vim ~/.bash_profile复制代码

并在其中输入

export N_PREFIX=/usr/local #node实际安装位置export PATH=$N_PREFIX/bin:$PATH复制代码

保存并退出,在用下面命令刷新

$ source ~/.bash_profile复制代码

这边就升级成功了,再检查下版本吧。

安装 MongoDB

首先编写 yum 库文件

$  sudo vi /etc/yum.repos.d/mongodb-org.repo复制代码

将下面文本写入

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

保存并退出;

检查可用库:

$  yum repolist复制代码

如果看到

. . .repo id                          repo namemongodb-org-3.2/7/x86_64         MongoDB Repository. . .复制代码

就可以进行安装操作

$  sudo yum install mongodb-org复制代码

安装结束后,启动它

$  sudo systemctl start mongod复制代码

安装 Nginx

前期准备

$  yum install gcc-c++$  yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel复制代码

安装结束后,执行安装 Nginx 的命令:

$  yum install nginx -y复制代码

反向代理配置

进入 nginx 文件夹

$  cd /etc/nginx复制代码

打开配置文件:

$  vim nginx.conf复制代码

忽略其他,我们看 server, 删除多余的,将 server 改造成下面这样:

server {        listen       80;        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 {        }    }复制代码

然后我们新增自己的代理配置,类似于下面:

server {        listen 80;        server_name xxx.com www.xxx.top;        location / {                proxy_pass http://127.0.0.1:8080;                proxy_set_header X-Real-IP $remote_addr;                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;                proxy_set_header Host $http_host;                proxy_set_header X-Nginx-Proxy true;                proxy_redirect off;        }    }复制代码

解释下:

  • server_nme 是域名,这边可以配置一级或者二级域名;
  • proxy_pass 是ip,通常直接以 127.0.0.1 代替,当然你也可以写你云服务器的公网ip;

其他的照着写就?, 上面文本达成的效果是,使用 server_name 代替直接访问 ip.

Ps. server_name 只能填写域名解析后的域名,并且需要在云服务器安全组中添加 80 端口的支持规则。

SSL 配置

首先要申请证书,并且下载到本地。

通常它们会是这样命名:

// xxx 是域名cert-1541562634350_xxx.crtcert-1541562634350_xxx.key复制代码

下载完后,使用 FTP 等同类工具上传到云服务器上,在 /etc/nginx 文件夹下创建 cert,将这这两个文件移到这个文件夹下;

接着编写 nginx.conf

server {        listen       443 ssl;        server_name  *.xxx.com;        root         /usr/share/nginx/html;        ssl_certificate /etc/nginx/cert/cert-1541562634350_www.funnyfm.top.crt;        ssl_certificate_key /etc/nginx/cert/cert-1541562634350_www.funnyfm.top.key;        ssl_session_cache shared:SSL:1m;        ssl_session_timeout  10m;        ssl_ciphers HIGH:!aNULL:!MD5;        ssl_prefer_server_ciphers on;        location / {                proxy_pass http://127.0.0.1:8080;                proxy_set_header X-Real-IP $remote_addr;                proxy_set_header Host $http_host;        }        error_page 404 /404.html;            location = /40x.html {        }        error_page 500 502 503 504 /50x.html;            location = /50x.html {        }    }复制代码

几个注意点:

  • SSL 监听的是 443 端口,需要在安全规则中添加;
  • 每一个 SSL server 需要对应一个 http 80 的server

编写结束后,需要重启 Nginx

$  nginx -s reload复制代码

好了,现在可以使用 xxx.com 来代替直接访问 ip 了。

转载地址:http://cynqa.baihongyu.com/

你可能感兴趣的文章
01奇数矩阵代码
查看>>
Java命令行监控工具(jmap,jstack,jstat,jinfo,jps)
查看>>
0915 - 宁愿写代码,不愿写文案
查看>>
Promise中多个回调函数之间的数据传递
查看>>
前端和后端的发展路径
查看>>
10个你在JavaScript面试前需要掌握的概念
查看>>
浅识JAVA设计模式——观察者模式
查看>>
React事件机制 - 源码概览(上)
查看>>
Go 语言标准库 text/template 包深入浅出
查看>>
[译]Rollup - 下一代 ES6 模块化打包工具 - 对 Rich Harris 的采访
查看>>
Node 框架接入 ELK 实践总结
查看>>
董朝:打造云存储服务——移动端数据存储与分发
查看>>
物联网操作系统安全性分析
查看>>
Android :这是一份详细 & 全面的 SQLlite数据库 使用手册
查看>>
从零实现Vue的组件库(七)- Message-Box 实现
查看>>
模式系统与最简单的Node.js MVC Web Server设计
查看>>
数据库:SwiftSQlite
查看>>
深入浅出node读书笔记
查看>>
如何看待 Google 最新的系统 Fuchsia?
查看>>
react-native-code-push进阶篇
查看>>