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到具体的目录下然后在执行启动命令,而开机脚本写的是后面带上程序的绝对路径,我想应该就是这个绝对路径的区别,然后我修改了开机脚本,具体如下:

图片

我们重启服务器

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

图片

尾巴:虽然这个问题解决起来非常简单,但是排查问题的过程确实非常漫长而且头疼,找打不到相关对应的资料,只能自己摸索尝试

如果本文对你有帮助,欢迎点赞收藏

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux设备上启动Tomcat,可以按照以下步骤进行操作: 1. 打开终端或SSH连接到Linux设备; 2. 进入Tomcat的安装目录,通常在 /opt/tomcat/; 3. 运行启动脚本,命令为 ./startup.sh; 4. 等待片刻,如果没有报错信息,表示Tomcat已经成功启动; 5. 在浏览器中输入服务器IP地址和Tomcat的端口号,例如 http://192.168.0.1:8080/ 就可以访问Tomcat应用程序。 需要注意的是,在Linux设备中启动Tomcat需要具有管理员权限。另外,如果想要使Tomcat在系统启动时自动启动,可以将启动脚本添加到系统启动脚本中。 ### 回答2: 在Linux环境下,可以通过设置系统服务来实现Tomcat的开机启动。 下面是详细的步骤: 1. 在/bin目录下的tomcat启动脚本中增加开机启动部分内容。具体位置是在脚本的最下面,可以使用vim或其他编辑器打开脚本进行修改。 增加以下内容: ### BEGIN INIT INFO # Provides: tomcat8 # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: tomcat8 # Description: tomcat8 ### END INIT INFO 2. 将tomcat的启动脚本复制到/etc/init.d目录下,并重命名为tomcat。复制命令如下: sudo cp /bin/startup.sh /etc/init.d/tomcat 3. 赋予tomcat脚本执行权限: sudo chmod +x /etc/init.d/tomcat 4. 让系统知道有一个新服务就在运行。使用以下命令刷新服务列表: sudo systemctl daemon-reload 5. 开启tomcat服务 sudo systemctl enable tomcat 6. 查看Tomcat启动状态 sudo systemctl status tomcat 查看Tomcat启动日志 tail -f /usr/local/tomcat/logs/catalina.out 以上就是Linux下设置Tomcat开机启动的详细步骤,按照此步骤进行操作,可以轻松实现开机启动。 ### 回答3: Linux是一种开源的操作系统,是应用最广泛的服务器操作系统之一。Tomcat是一种广泛使用的Java Web服务器,为了保证Tomcat服务器在Linux系统中开机启动,需要进行一些配置。本文将介绍如何在Linux系统中设置Tomcat开机启动。 第一步:修改Tomcat的启动脚本 在Linux系统中,每个服务都有一个启动脚本来控制其启动和关闭。因此,我们需要修改Tomcat的启动脚本,使其在开机时自动启动Tomcat服务。以下是修改Tomcat启动脚本的步骤: 1. 以root用户身份登录Linux系统。 2. 找到Tomcat所在的目录,并进入bin目录。 3. 打开startup.sh文件,并将以下代码添加到该文件的最后一行: nohup sh /usr/local/tomcat/bin/startup.sh >/dev/null 2>&1 & 说明:这段代码的含义是,使用nohup命令启动Tomcat服务,并将输出重定向到/dev/null,以便在后台运行Tomcat服务。 4. 保存并关闭文件。 第二步:添加Tomcat服务到系统启动程序 对于使用Systemd 或者 Upstart 启动系统的Linux操作系统,需要将Tomcat服务添加到系统启动程序中,以确保Tomcat在开机时自动启动。以下是添加Tomcat服务的步骤: 1. 创建tomcat.service文件: 在systemd系统中,需要在/etc/systemd/system目录下创建一个tomcat.service文件。在Upstart系统中需要在/etc/init目录下创建一个tomcat.conf文件。 2. 编辑tomcat.service文件: 在tomcat.service文件中加入以下内容: [Unit] Description=Tomcat Server After=syslog.target network.target [Service] Type=forking PIDFile=/usr/local/tomcat/bin/catalina.pid ExecStart=/usr/local/tomcat/bin/startup.sh ExecStop=/usr/local/tomcat/bin/shutdown.sh User=root Group=root Restart=on-failure [Install] WantedBy=multi-user.target 这段代码是说明Tomcat服务,向系统提供服务的描述和系统应该如何启动它的指令。其中,ExecStart用于启动Tomcat服务,ExecStop用于关闭Tomcat服务。 3. 保存并关闭文件。 4. 运行以下命令,刷新服务列表并启动Tomcat服务: systemctl daemon-reload systemctl start tomcat 5. 设置Tomcat服务为开机启动启动: 在systemd系统中,运行以下命令设置Tomcat服务为自启动: systemctl enable tomcat 在Upstart系统中,运行以下命令设置Tomcat服务为自启动: update-rc.d tomcat defaults 这样,Tomcat服务就会自动开机启动了。 总结: 设置Tomcat开机启动,需要修改Tomcat的启动脚本,并将Tomcat服务添加到系统启动程序中。在Systemd 和 Upstart系统中分别是创建tomcat.service文件和tomcat.conf文件,并对其进行相应的设置。这样就可以保证Tomcat在Linux系统中开机启动

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值