linux下开机启动443程序无法访问解决方法
前言:最近,有一个项目需要用到开机自动启动程序,所以就研究了一下,环境为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/node
2.添加开机自启动
vi /etc/rc.d/rc.local
添加一下代码
forever start -s /home/demo/app.js //这里的程序所在的路径

3.设置一下权限即可
chmod +x /etc/rc.d/rc.local
4.重启查看forever list看程序有没运行
我们可以看到已经启动了程序,我们访问下程序

我们发现程序并不能访问
网站报错内容为:
此网站无法提供安全连接
协议不受支持
客户单端和服务器不支持一般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到具体的目录下然后在执行启动命令,而开机脚本写的是后面带上程序的绝对路径,我想应该就是这个绝对路径的区别,然后我修改了开机脚本,具体如下:

我们重启服务器
我们可以看到已经顺利进来了,就此问题解决

尾巴:虽然这个问题解决起来非常简单,但是排查问题的过程确实非常漫长而且头疼,找打不到相关对应的资料,只能自己摸索尝试
linux下开机启动443程序无法访问解决方法的更多相关文章
- Linux下登录Oracle命令行时删除键^H解决方法
Linux下登录Oracle命令行时删除键^H解决方法 在linux服务器下登录oracle的控制台,如果输入错误,想用删除键删除时却不能删除,输出的是^H的字符. 方法 用如下的命令可以使删除键生效 ...
- linux下python启动第三方程序,并控制关闭
import subprocess import os import signal p = subprocess.Popen("recordmydesktop -o /home/test/t ...
- linux下开机启动脚本的方法
1.准备好要随机启动的程序,例如 /root/test.sh .确保其可执行. 2.在目录 /etc/init.d/ 下编写控制脚本 test . #!/bin/sh ### BEGIN INIT I ...
- linux下误删mysql的root用户,解决方法
开始对liunx界面不熟悉,可能由于不小心,把root误删了,怎么办? 1. # killall mysqld 干掉所有mysql进程 2. # mysqld_safe --skip-grant ...
- Linux下is not in the sudoers file解决方法
最近在学习linux,在某个用户(xxx)下使用sudo的时候,提示以下错误:xxx is not in the sudoers file. This incident will be reporte ...
- Error: Linux下 mysql.sock文件丢失被删除解决方法
在默认情况下,Mysql安装以后会在/tmp目录下生成一个mysql.sock文件,如该文件丢失则Mysql将不能够正常启动,解决方法:使用mysqld_safe 启动即可解决: #basedir:m ...
- Linux下DM无法显示建模界面的解决方法
方法来源: http://www.linuxhospital.com/read/unable-to-resolve-function-glxqueryextension-in-hyperview.ht ...
- linux下开机启动svn配置
1.在 vi /etc/rc.local文件下添加以下: /home/svn/subversion-1.8.18/bin/svnserve -d --listen-port 3690 -r /home ...
- screen mac linux下一种让程序后台运行的方法
1: screen 场景的意思.字面意思就是软件运行在不同场景 (1)创建会话 使用命令“screen -S RunWork”来创建一个screen会话,命令执行之后,就会得到一个新的shell窗口, ...
随机推荐
- Python基础之数据类型和变量
数据类型 计算机顾名思义就是可以做数学机器,可以处理各种数值,计算机还能处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据是需要定义不同的数据类型的,在Python中,能够直接处理的数据 ...
- Linux下一键安装Python3&更改镜像源&虚拟环境管理技巧
前言 之前分享过一篇<Linux系统自带Python2&yum的卸载及重装>,介绍了如何卸载及重装Linux(CentOS)自带的的Python2.7.今天主要介绍如何在Linux ...
- LuoguP4219 [BJOI2014]大融合(LCT)
早上考试想用\(LCT\)维护联通块\(size\),现在才发现\(LCT\)的\(size\)有虚实之分 \(Link\)与\(Acess\)中虚实变,干他丫的 \(Splay\)中只是相对关系,没 ...
- 部署前后端为独立的 Docker 节点
在『服务器部署 Vue 和 Django 项目的全记录』一文中,介绍了在服务器中使用 Nginx 部署前后端项目的过程.然而,当 Web 应用流量增多时,需要考虑负载均衡.流量分发.容灾等情况,原生的 ...
- 2020牛客NOIP赛前集训营-提高组(第二场)- B.包含 (FWT)
题面 题解 这题就是个快速沃尔什变换的模板题,输入ai时,令s[ai]=1,对s[]做一遍DWT_AND(s)(快速沃尔什正变换,按位与),然后直接访问s[x]完事. #include<map& ...
- 【MySQL】从入门到掌握3-WorkBench
上期:[MySQL]从入门到掌握2-下载安装 我们安装完MySQL Server的时候,是没有任何界面的. 不过很好,我们有一个工具,MySQL Workbench,他可以简化我们的操作,有点像Jav ...
- Q准则涡识别方法
Q准则(Q Criterion)在涡识别中计算效率高,效果也不错,是一种常用的涡提取/识别方法. 了解Q准则需要从速度梯度张量入手,而速度梯度张量可以分解成两部分 \[\frac{\partial u ...
- vscode用户自定义代码中如何表示table空格
"Print to phpfuntion": { "scope": "php", "prefix": "pfu ...
- Odoo自建应用初步总结(一)
学习了<Odoo快速入门与实践 Python开发ERP指南>(刘金亮 2019年5月第1版 机械工业出版社)第6章自建应用入门后进行一下总结. 因为本书作者使用Odoo11,而目前最新版本 ...
- day03-3私聊功能
多用户即时通讯系统03 4.编码实现02 4.4功能实现-私聊功能实现 4.4.1思路分析 客户端 - 发送者: 用户在控制台输入信息,客户端接收内容 将消息构建成Messgae对象,通过对应的soc ...
