资讯专栏INFORMATION COLUMN

从 node服务部署,到https配置与nginx转发

douzifly / 889人阅读

从 node服务部署,到https配置与nginx转发

最近在搞小程序,小程序的服务必须使用https协议,之前没学过这些,于是写下这篇博客,记录自己遇到的问题

本篇博客解决这些问题,服务器的登陆配置、项目的部署、https证书的申请、nginx部署https与转发本地服务

通过私钥登陆服务器

腾讯云重装系统

登陆设置选择使用ssh密钥设置

选择ssh密钥,如果没有则创建ssh密钥

点击开始安装

下载生成好的私钥到本地

使用终端进行配置

// 赋予私钥文件仅本人可读权限
chmod 400 <下载的与云服务器关联的私钥的绝对路径>

// 运行以下远程登录命令
ssh -i <下载的与云服务器关联的私钥的绝对路径> @

给服务器装nvm管理node版本
// 下载nvm
wget https://github.com/cnpm/nvm/archive/v0.23.0.tar.gz
// 解压nvm
tar -xf v0.23.0.tar.gz
// 进入目录
cd nvm-0.23.0/
// 安装nvm
./install.sh
// 安装后执行
source ~/.bash_profile

使用nvm安装node

nvm install 10.14.2
给服务器安装git

由于我的代码托管在github上,给服务器安装git方便管理代码

在linux安装git

克隆项目到服务器
git clone https://github.com/lfhwnqe/wechat_server.git

进入项目根目录安装依赖

cd wechat_server
npm install

启动项目进行连接

npm start

现在项目在本7001端口启动

此时访问服务器公网ip:7001就可以访问到服务器上启动的服务

把域名映射到服务器

进入域名管理界面(我用的是阿里的)

点击解析设置

点击修改

在记录值处修改为服务器的公网ip

保存设置,然后访问你的域名有服务监听80端口的话就可以得到响应了

申请https证书

先申请一个免费https证书

在服务器运行一下命令,通过openssl生成csr和私钥

openssl req -new -newkey rsa:2048 -sha256 -nodes -out linuoblog.cn.csr -keyout linuoblog.cn.key -subj "/C=CN/ST=ShenZhen/L=ShenZhen/O=NUO Inc./OU=Web Security/CN=linuoblog.cn"

下面是上述命令相关字段含义:

C:Country ,单位所在国家,为两位数的国家缩写,如: CN 就是中国

ST 字段: State/Province ,单位所在州或省

L 字段: Locality ,单位所在城市 / 或县区

O 字段: Organization ,此网站的单位名称;

OU 字段: Organization Unit,下属部门名称;也常常用于显示其他证书相关信息,如证书类型,证书产品名称或身份验证类型或验证内容等;

CN 字段: Common Name ,你的网站域名;

如果你是使用https://freessl.cn获取证书,在使用openssl命令生成 csr 文件后,在页面选择csr生成,并粘贴生成的csr内容到页面,然后通过该网站的验证方式,验证所有者,即可获得ca证书

https://freessl.cn获得的ca证书是 .pem后缀的证书文件,证书文获取成功后,就可以在 Nginx 配置文件里配置 HTTPS 了。

配置nginx,域名启用https,通过nginx把https请求转发到本地node服务

要开启 HTTPS 服务,在配置文件信息块(server block),必须使用监听命令 listen 的 ssl 参数和定义服务器证书文件和私钥文件,同时通过设置location模块把发送到网页的请求转发到服务器上的node服务,如下所示:

worker_processes auto;
http {
    #配置共享会话缓存大小,视站点访问情况设定
    ssl_session_cache   shared:SSL:10m;
    #配置会话超时时间
    ssl_session_timeout 10m;
    server {
        listen              443 ssl;
        server_name         linuoblog.cn;
        
        #设置长连接
        keepalive_timeout   70;
        
        #HSTS策略
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
        #证书文件
        ssl_certificate     full_chain.pem;    # 证书的路径
        #私钥文件
        ssl_certificate_key linuoblog.cn.key; # 私钥的路径
        
        location / {
        # 这里是把链接代理到本机的7001端口
          proxy_pass http://127.0.0.1:7001;
        }
    }
}
        events {
            worker_connections  1024;  ## Default: 1024
          }

配置完成后启动nginx

nginx

这个时候,访问自己的域名就能看到https服务了。同时也通过nginx把网页端的请求转发到了服务器本地的server上
原文地址

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40264.html

相关文章

  • node服务部署https配置nginx转发

    从 node服务部署,到https配置与nginx转发 最近在搞小程序,小程序的服务必须使用https协议,之前没学过这些,于是写下这篇博客,记录自己遇到的问题 本篇博客解决这些问题,服务器的登陆配置、项目的部署、https证书的申请、nginx部署https与转发本地服务 通过私钥登陆服务器 腾讯云重装系统 登陆设置选择使用ssh密钥设置 选择ssh密钥,如果没有则创建ssh密钥 点击开始安装...

    molyzzx 评论0 收藏0
  • 服务安装部署全过程(二)

    摘要:上一篇文章中大概尝试安装的一些过程以及在配置中出现的问题还有一些解决方式,那么在本次过程尝试中,将进一步进行服务器的基础配置,以及前端应用部署经过上次已经安装至服务器中了,在这里面主要介绍一下部署相关所需要的配置,例如监听端口服务转发静态资 OK! 上一篇文章中大概尝试安装mysql、nginx、nodeJs、pm2 的一些过程以及在配置中出现的问题还有一些解决方式,那么在本次过程尝...

    Stardustsky 评论0 收藏0
  • [手把手系列之]Docker 部署 vue 项目

    摘要:部署项目写在前面作为轻量级虚拟化技术,拥有持续集成版本控制可移植性隔离性和安全性等优势。容器可以被创建启动停止删除暂停等。重新运行应用容器直接基于镜像来启动容器,运行命令将宿主机的挂载到容器的目录上。Docker 部署 vue 项目 1.写在前面: Docker 作为轻量级虚拟化技术,拥有持续集成、版本控制、可移植性、隔离性和安全性等优势。本文使用Docker来部署一个vue的前端应用,并尽...

    VPointer 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<