当前位置: 首页 > 后端技术 > Node.js

从节点服务部署,到https配置和nginx转发

时间:2023-04-03 14:47:32 Node.js

从节点服务部署,到https配置和nginx转发一个博客记录你遇到的问题本博客解决这些问题,服务器登录配置,项目部署,https证书申请,nginx部署https并转发本地服务通过私钥登录服务器腾讯云重装系统登录设置使用sshkey设置选择sshkey,如果没有则创建sshkey,点击开始安装,下载生成私钥到本地终端进行配置//赋予私钥文件只对我可读权限chmod400<用云端下载与服务器关联的私钥的绝对路径>//运行如下远程登录命令ssh-i<下载的与云服务器关联的私钥的绝对路径><用户名>@<主机名或ip地址>在服务器上安装nvm管理节点版本//下载nvmwgethttps://github.com/cnpm/nvm/archive/v0.23.0.tar.gz//解压nvmtar-xfv0.23.0.tar.gz//进入目录cdnvm-0.23.0//安装nvm./install.sh//执行source~/安装后.bash_profile使用nvm安装nodenvminstall10.14.2在服务器上安装git由于我的代码是托管在github上,所以在服务器上安装git方便代码管理在linux上安装git将项目克隆到服务器上gitclonehttps://github.com/lfhwnqe/wechat_server.git进入项目根目录安装依赖cdwechat_servernpminstall启动项目连接npmstart现在项目启动在7001端口现在访问服务器公网ip:7001然后就可以了访问服务器上启动的服务,将域名映射到服务器,进入域名管理界面(我用的是阿里的),点击解析设置,点击修改,将记录值改为服务器的公网ip,保存设置,然后访问你的域名如果有服务监听80端口,就可以得到响应。申请https证书,先申请一个免费的https证书。在服务器上运行命令通过opensslopensslreq-n生成csr和私钥ew-newkeyrsa:2048-sha256-nodes-outlinuoblog.cn.csr-keyoutlinuoblog.cn.key-subj"/C=CN/ST=ShenZhen/L=ShenZhen/O=NUOInc./OU=WebSecurity/CN=linuoblog.cn”以下是上述命令相关字段的含义:C:Country,单位所在国家,是国家的缩写,带两位数字,如:CN就是STfieldofChina:State/Province,单位所在的州或省Lfield:Locality,单位所在的市/县Ofield:Organization,本网站的单位名称;OU字段:OrganizationUnit,下属部门名称;也常用于显示其他证书相关信息,如证书类型、证书产品名称或身份验证类型或验证内容等;CN字段:CommonName,你的网站域名;如果使用https://freessl.cn获取证书,使用openssl命令生成csr文件后,在页面选择csrgeneration,将生成的csr内容粘贴到页面,然后通过网站验证方式,可以获取ca证书https://freessl.cnhttps://freessl.cn获取的ca证书是一个.pem后缀的证书文件。证书文件获取成功后,就可以在Nginx的配置文件中配置HTTPS了配置nginx,在域名上开启https,通过nginx将https请求转发到本地节点服务。启用HTTPS服务,在配置文件信息块(server块)中,必须使用listen命令的ssl参数,并定义服务器证书文件和私钥文件。同时,通过设置location模块将发送到网页的请求转发到服务器上的节点服务,如下所示:worker_processesauto;http{#配置共享会话缓存的大小,并根据本站访问情况共享:SSL:10m;#配置会话超时ssl_session_timeout10m;服务器{听443ssl;server_namelinuoblog.cn;#设置长连接keepalive_timeout70;#HSTS策略add_headerStrict-Transport-Security"max-age=31536000;includeSubDomains;preload"always;#证书文件ssl_certificatefull_chain.pem;#证书路径#私钥文件ssl_certificate_keylinuoblog.cn.key;#私钥路径位置/{#这里是链接代理到本机7001端口proxy_passhttp://127.0.0.1:7001;}}}事件{worker_connections1024;##Default:1024}配置完成后,启动nginxnginx,此时访问自己的域名就可以看到https服务了。同时将网页的请求通过nginx转发到服务器本地服务器上的原始地址