搭建http服务器

2018-02-25  本文已影响0人  睡神经你敢不敢不睡懒觉

安装NodeJS 和 NPM

使用下面的命令安装 NodeJS 和 NPM

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash - yum install nodejs -y

安装完成后,使用下面的命令测试安装结果

node -v

编写HTTP Server 源码

创建工作目录

使用下面的命令在服务器创建一个工作目录:

mkdir -p /data/release/weapp

进入此工作目录

cd /data/release/weapp

创建 package.json

在刚才创建的工作目录创建 package.json,添加我们服务器包的名称和版本号,可参考下面的示例。

{
"name": "weapp",
"version": "1.0.0" 
}

添加 Server 源码

在工作目录创建 app.js,使用 Express.js 来监听 8765 端口,可参考下面的示例代码。

// 引用 express 来支持 HTTP Server 的实现
const express = require('express');

// 创建一个 express 实例
const app = express();

// 实现唯一的一个中间件,对于所有请求,都输出 "Response from express"
app.use((request, response, next) => {
response.write('Response from express');
response.end();
});

// 监听端口,等待连接
const port = 8765;
app.listen(port);

// 输出服务器启动日志
console.log(`Server listening at http://127.0.0.1:${port}`);

运行 HTTP 服务

安装 PM2

在开始之前,我们先来安装 PM2

npm install pm2 --global

PM2 安装时间可能稍长,请耐心等候
NPM 仓库在国内访问速度可能不太理想,如果实在太慢可以尝试使用 CNPM 的 Registry 进行安装:

npm install pm2 -g --registry=[https://r.cnpmjs.org/](https://r.cnpmjs.org/ "null")

安装 Express

我们的服务器源码里使用到了 Express 模块,下面的命令使用 NPM 来安装 Express

cd /data/release/weapp

npm install express --

启动服务

安装完成后,使用 PM2 来启动 HTTP 服务

cd /data/release/weapp

pm2 start app.js

现在,您的 HTTP 服务已经在 http://139.199.220.199:8765运行

要查看服务输出的日志,可以使用下面的命令:

pm2 logs

如果要重启服务,可以使用下面的命令:

pm2 restart app

搭建HTTPS服务

安装Nginx

在 CentOS 上,可直接使用 yum 来安装 Nginx

yum install nginx -y

安装完成后,使用 nginx 命令启动 Nginx:

nginx

此时,访问 http://139.199.220.168 可以看到 Nginx 的测试页面

配置HTTPS反向代理

外网用户访问服务器的 Web 服务由 Nginx 提供,Nginx 需要配置反向代理才能使得 Web 服务转发到本地的 Node 服务。

先将之前下载的 SSL 证书(解压后 Nginx 目录分别以 crt 和 key 作为后缀的文件)通过拖动到左侧文件浏览器/etc/nginx目录的方式来上传文件到服务器上

Nginx 配置目录在 /etc/nginx/conf.d,我们在该目录创建 ssl.conf

server {
    listen 443;
    server_name www.example.com; # 改为绑定证书的域名
    # ssl 配置
    ssl on;
    ssl_certificate 1_www.example.com_bundle.crt; # 改为自己申请得到的 crt 文件的名称
    ssl_certificate_key 2_www.example.com.key; # 改为自己申请得到的 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;

    location / {
        proxy_pass http://127.0.0.1:8765;
    }
}

按 Ctrl + S 保存配置文件,让 Nginx 重新加载配置使其生效:

nginx -s reload

在浏览器通过 https 的方式访问你解析的域名来测试 HTTPS 是否成功启动

在小程序中测试HTTPS访问

打开配套的小程序,点击 实验一:HTTPS,点击 发送请求 来测试访问结果。
如果服务器响应成功,请点击下一步。

上一篇下一篇

猜你喜欢

热点阅读