linux下開機啟動443程序無法訪問解決方法

前言:最近,有一個項目需要用到開機自動啟動程序,所以就研究了一下,環境為redhat8,程序是node,使用forever來進行node程序的持久化,程序使用的是443端口,開啟的是https

linux下開機啟動443程序無法訪問解決方法

文章插圖
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//這里的程序所在的路徑
linux下開機啟動443程序無法訪問解決方法

文章插圖
3.設置一下權限即可 chmod +x /etc/rc.d/rc.local4.重啟查看forever list看程序有沒運行我們可以看到已經啟動了程序,我們訪問下程序
linux下開機啟動443程序無法訪問解決方法

文章插圖
我們發現程序并不能訪問
網站報錯內容為:
此網站無法提供安全連接
協議不受支持
客戶單端和服務器不支持一般SSL協議版本或加密套件
linux下開機啟動443程序無法訪問解決方法

文章插圖
5.排查過程:1.防火墻1首先關閉防火墻進行排查是否是原因所在 , 結果發現并不是原因:
linux下開機啟動443程序無法訪問解決方法

文章插圖
2.更換端口:我們把程序的啟動端口修改了,改為了8081然后重啟服務器進行測試,結果發現重啟服務器可以重新啟動
linux下開機啟動443程序無法訪問解決方法

文章插圖
3.ssl證書問題在網上找了一圈就沒有相關的解決方案,基本都是ssl證書的問題,我之前也覺得也是ssl證書過期的問題,但是如果是ssl證書過期我用上面的http也可以實現訪問,所以問題不是出在了這里,隨后我又找了開機啟動程序相關的問題,結果發現都不是問題所在 , 問題就此耽擱住了
4.使用443端口,用命令啟動程序我們可以看到,點擊下面的地址是可以直接進入程序的,這一點我已經驗證過了
linux下開機啟動443程序無法訪問解決方法

文章插圖
5.轉機突然,我想到既然用命令行的方式可以啟動程序,那我直接把命令行的過程復現一下不就可以了嗎,首先,我復現下用命令行啟動的過程
1.cd /程序的目錄2.啟動程序我們再來看看開機啟動程序的腳本
forever start -s /home/demo/app.js//這里的程序所在的路徑兩者對比,我們發現 , 命令行啟動是cd到具體的目錄下然后在執行啟動命令,而開機腳本寫的是后面帶上程序的絕對路徑 , 我想應該就是這個絕對路徑的區別,然后我修改了開機腳本,具體如下:
linux下開機啟動443程序無法訪問解決方法

文章插圖
我們重啟服務器
我們可以看到已經順利進來了,就此問題解決
linux下開機啟動443程序無法訪問解決方法

文章插圖
尾巴:雖然這個問題解決起來非常簡單,但是排查問題的過程確實非常漫長而且頭疼,找打不到相關對應的資料 , 只能自己摸索嘗試
【linux下開機啟動443程序無法訪問解決方法】

    推薦閱讀