前言:最近,有一个项目需要用到开机自动启动程序,所以就研究了一下,环境为redhat8 , 程序是node , 使用forever来进行node程序的持久化 , 程序使用的是443端口 , 开启的是https
文章插图
1.把node和forever的快捷方式放在放在/usr/bin/(环境变量)下面,所有的命令默认是从这里面进行调用的查询下node的地址在哪里
ln -s /home/tool/node/node-v8.11.3-linux-x64/bin/node /usr/bin/node//这里的路径就是安装node的路径
ln -s /home/tool/node/node-v8.11.3-linux-x64/bin/node /usr/bin/node2.添加开机自启动
vi /etc/rc.d/rc.local
添加一下代码forever start -s /home/demo/app.js//这里的程序所在的路径
文章插图
3.设置一下权限即可
chmod +x /etc/rc.d/rc.local
4.重启查看forever list看程序有没运行我们可以看到已经启动了程序 , 我们访问下程序文章插图
我们发现程序并不能访问
网站报错内容为:
此网站无法提供安全连接
协议不受支持
【linux下开机启动443程序无法访问解决方法】客户单端和服务器不支持一般SSL协议版本或加密套件
文章插图
5.排查过程:1.防火墙1首先关闭防火墙进行排查是否是原因所在 , 结果发现并不是原因:
文章插图
2.更换端口:我们把程序的启动端口修改了 , 改为了8081然后重启服务器进行测试 , 结果发现重启服务器可以重新启动
文章插图
3.ssl证书问题在网上找了一圈就没有相关的解决方案 , 基本都是ssl证书的问题 , 我之前也觉得也是ssl证书过期的问题 , 但是如果是ssl证书过期我用上面的http也可以实现访问 , 所以问题不是出在了这里 , 随后我又找了开机启动程序相关的问题 , 结果发现都不是问题所在 , 问题就此耽搁住了
4.使用443端口 , 用命令启动程序我们可以看到 , 点击下面的地址是可以直接进入程序的 , 这一点我已经验证过了
文章插图
5.转机突然 , 我想到既然用命令行的方式可以启动程序 , 那我直接把命令行的过程复现一下不就可以了吗 , 首先 , 我复现下用命令行启动的过程
1.cd /程序的目录2.启动程序
我们再来看看开机启动程序的脚本forever start -s /home/demo/app.js//这里的程序所在的路径
两者对比 , 我们发现 , 命令行启动是cd到具体的目录下然后在执行启动命令 , 而开机脚本写的是后面带上程序的绝对路径 , 我想应该就是这个绝对路径的区别 , 然后我修改了开机脚本 , 具体如下:文章插图
我们重启服务器
我们可以看到已经顺利进来了 , 就此问题解决
文章插图
尾巴:虽然这个问题解决起来非常简单 , 但是排查问题的过程确实非常漫长而且头疼 , 找打不到相关对应的资料 , 只能自己摸索尝试
经验总结扩展阅读
- 2023年下半年哪些星座事业运达巅峰?
- 2023年下半年,哪个星座将迎来人生重大转折点?
- 2022年下元节是什么意思
- 下元节艾灸好处 下元节的由来
- 下元节为什么过鬼节 下元节晚上不能出门吗
- 下元节天官赐福 祭祀要注意什么
- 下元节可以去寺庙吗 下元节的风俗有哪些
- 下元节门口放两瓶水 下元节门口为什么要放水
- 无须甜言蜜语,这些星座男照样拿下你
- 下月起3星座财运旺盛 大运挡不住