百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

宝塔面板安装NodeJS程序并配置https教程

yuyutoo 2025-01-24 14:36 5 浏览 0 评论

之前没有用宝塔面板安装过NodeJS程序,在网上寻找了一番资料后发现这方面的教程比较少,于是去宝塔论坛发帖,但是没有获得帮助。最后终于花了一下午和晚上的时间在网上寻找了一番资料后将需要实现的功能都实现了,在此记录一下安装教程。这里以当时折腾的BWmelonAPI程序为例。

准备

0、替换https证书

将https证书放到certificate文件夹中,然后将根目录的index.js文件中xxxxx换成自己证书的文件名。如果是其他程序不需要配置https可以忽略这一步。

证书文件

1、安装PM2管理器

在宝塔面板中的软件管理-运行环境中安装PM2管理器和MongoDB数据库(其他程序如果没有用到MongoDB可以不用安装)。

2、放行NodeJS服务端口

BWmelonAPI中默认的http端口为3000,https端口为444,所以需要在宝塔面板的安全-端口控制中将这两个端口放行(如果没有https只需放行一个端口):

放行端口


需要注意的是,有些服务器还需要在防火墙中放行相应端口(例如阿里云),这时也要在服务器中放行3000和444端口才行。例:阿里云安全组如何放行端口?

安装

1、上传文件到服务器

将所有文件打包成压缩包,在宝塔面板文件管理中新建一个文件夹,这里以api.no0a.cn为例,然后将这个压缩包上传到文件夹中并解压。

2、安装淘宝NPM镜像

为了更快的下载程序依赖文件,打开宝塔面板的SSH终端,输入下面命令安装淘宝NPM镜像:

npm install -g cnpm --registry=https://registry.npm.taobao.org

3、安装依赖

在宝塔面板的SSH终端进入第一步新建的文件夹,进入目录的命令为cd

进入文件夹

在宝塔面板的SSH终端输入cnpm install并按回车键安装依赖文件,由于使用了淘宝镜像,几秒就把所有依赖下载完成了,不然需要很长时间:

安装依赖

4、新建NodeJS程序

打开PM2管理器,点击文件夹图标按钮选择上一步的文件夹,输入NodeJS程序的启动文件,然后输入项目名称并点击添加按钮,这时下方列表就会出现刚才添加的NodeJS程序。

新建NodeJS程序

5、映射程序

点击映射按钮,然后在弹出的窗口中输入需要映射到的域名和端口号:

映射程序


映射完成后就可以在面板的网站列表中看到一个多出来的站点,这时就可以用过域名+端口号访问程序了:

6、设置前台运行目录

如果程序有前台静态文件,可以设置程序的运行目录。点击设置按钮,在弹出的窗口左侧点击网站目录,将运行目录选择为public并保存。这时即可通过域名+端口号访问程序前台了:

设置运行目录

域名反代

通过上面的安装,现在已经可以通过域名+端口使用安装的程序,但是域名+端口访问程序不太美观,可以使用域名反代方式直接通过域名访问程序。
点击配置文件按钮,将

listen 3000;

改为

listen 80;

然后在server_name 域名;下面添加

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

域名反代


这时即可通过域名直接访问程序。

配置https

这一步是花了最长时间去折腾的,按上面的方法应该是将

listen 80;

改为

listen 443;

然后在server_name 域名;下面添加

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

但是这样做没有程序,最终发现面板里面会生成错误日志,看了日志才将问题解决。ε=('ο`*)))唉。

下面说正确的配置方法,将配置文件里面现有的文本复制,然后在最下面粘贴一份,将

listen 80;

改为

listen 443 ssl;

然后在server_name 域名;下面添加

location / {
    proxy_pass https://127.0.0.1:444;
}

再添加

ssl_certificate /www/wwwroot/api.no0a.cn/certificate/xxxxxx.pem;
ssl_certificate_key /www/wwwroot/api.no0a.cn/certificate/xxxxx.key;

这两个文件是ssl证书文件,就是第0步中替换的证书文件,需要要先从证书提供商下载并将证书上传到文件夹中,同样将上面代码中的xxxxx替换成自己证书文件的文件名。
这时可以通过http和https访问程序。

配置https

强制https访问

如果想让http访问强制转到https访问,可以在图中位置添加代码:

return 301 https://$host$request_uri;

强制https

结束

到这里折腾就结束了,实在写不下去了.

相关推荐

.NET 奇葩问题调试经历之3——使用了grpc通讯类库后,内存一直增长......

...

全局和隐式 using 指令详解(全局命令)

1.什么是全局和隐式using?在.NET6及更高版本中,Microsoft引入了...

请停止微服务,做好单体的模块化才是王道:Spring Modulith介绍

1、介绍模块化单体是一种架构风格,代码是根据模块的概念构成的。对于许多组织而言,模块化单体可能是一个很好的选择。它有助于保持一定程度的独立性,这有助于我们在需要的时候轻松过渡到微服务架构。Spri...

ASP.NET程序集引用之痛:版本冲突、依赖地狱等解析与实战

我是一位多年后端经验的工程师,其中前几年用ASP.NET...

.NET AOT 详解(.net 6 aot)

简介AOT(Ahead-Of-TimeCompilation)是一种将代码直接编译为机器码的技术,与传统的...

一款基于Yii2开发的免费商城系统(一款基于yii2开发的免费商城系统是什么)

哈喽,我是老鱼,一名致力于在技术道路上的终身学习者、实践者、分享者!...

asar归档解包(游戏arc文件解包)

要学习Electron逆向,首先要有一个Electron开发的程序的发布的包,这里就以其官方的electron-quick-start作为例子来进行一下逆向的过程。...

在PyCharm 中免费集成Amazon CodeWhisperer

CodeWhisperer是Amazon发布的一款免费的AI编程辅助小工具,可在你的集成开发环境(IDE)中生成实时单行或全函数代码建议,帮助你快速构建软件。简单来说,AmazonCodeWhi...

2014年最优秀JavaScript编辑器大盘点

1.WebstormWebStorm是一种轻量级的、功能强大的IDE,为Node.js复杂的客户端开发和服务器端开发提供完美的解决方案。WebStorm的智能代码编辑器支持JavaScript,...

基于springboot、tio、oauth2.0前端vuede 超轻量级聊天软件分享

项目简介:基于JS的超轻量级聊天软件。前端:vue、iview、electron实现的PC桌面版聊天程序,主要适用于私有云项目内部聊天,企业内部管理通讯等功能,主要通讯协议websocket。支持...

JetBrains Toolbox推出全新产品订阅授权模式

捷克知名软件开发公司JetBrains最为人所熟知的产品是Java编程语言开发撰写时所用的集成开发环境IntelliJIDEA,相信很多开发者都有所了解。而近期自2015年11月2日起,JetBr...

idea最新激活jetbrains-agent.jar包,亲测有效

这里分享一个2019.3.3版本的jetbrains-agent.jar,亲测有效,在网上找了很多都不能使用,终于找到一个可以使用的了,这里分享一下具体激活步骤,此方法适用于Jebrains家所有产品...

CountDownTimer的理解(countdowntomars)

CountDownTimer是android开发常用的计时类,按照注释中的说明使用方法如下:kotlin:object:CountDownTimer(30000,1000){...

反射为什么性能会很慢?(反射时为什么会越来越长)

1.背景前段时间维护一个5、6年前的项目,项目总是在某些功能使用上不尽人意,性能上总是差一些,仔细过了一下代码发现使用了不少封装好的工具类,工具类里面用了好多的反射,反射会影响到执行效率吗?盲猜了一...

btrace 开源!基于 Systrace 高性能 Trace 工具

介绍btrace(又名RheaTrace)是抖音基础技术团队自研的一款高性能AndroidTrace工具,它基于Systrace实现,并针对Systrace不足之处加以改进,核心改进...

取消回复欢迎 发表评论: