node服务部署,网站配置域名,https协议配置,nginx转发网页请求到本地node服务一条龙

node服务部署到服务器,给网站配置域名,网站改为https协议,通过nginx转发网页请求到本地node服务

  1. 登录服务器,使用私钥登陆

    • 腾讯云重装系统
    • 登陆设置选择使用ssh密钥设置
    • 选择ssh密钥,如果没有则创建ssh密钥
    • 点击开始安装
    • 下载生成好的私钥到本地
    • 使用终端进行配置

      // 赋予私钥文件仅本人可读权限
      chmod 400 <下载的与云服务器关联的私钥的绝对路径>
      
      // 运行以下远程登录命令
      ssh -i <下载的与云服务器关联的私钥的绝对路径> <username>@<hostname or ip address>
  2. 给服务器装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
  3. 使用nvm安装node

    nvm install 10.14.2
  4. 给服务器安装git

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

    在linux安装git

  5. 克隆项目到服务器

    git clone https://github.com/lfhwnqe/wechat_server.git
  6. 进入项目根目录安装依赖

    cd wechat_server
    npm install
  7. 启动项目进行连接

    npm start

    现在项目在本7001端口启动

  8. 把域名映射到服务器

    • 进入域名管理界面(我用的是阿里的)
    • 点击解析设置
    • 点击修改
    • 在记录值处修改为服务器的公网ip
    • 保存设置,然后访问你的域名有服务监听80端口的话就可以得到响应了
  9. 在服务器生成https证书,启用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证书

生成 csr 文件后,提供给 CA 机构,签署成功后,就会得到一个 .pem后缀的证书文件,、证书文获取成功后,就可以在 Nginx 配置文件里配置 HTTPS 了。

  1. 配置nginx,通过nginx把https请求转发到本地node服务

    要开启 HTTPS 服务,在配置文件信息块(server block),必须使用监听命令 listen 的 ssl 参数和定义服务器证书文件和私钥文件,如下所示:

    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上

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章