Introduce
洪澤網站建設公司創新互聯,洪澤網站設計制作,有大型網站制作公司豐富經驗。已為洪澤近千家提供企業網站建設服務。企業網站搭建\成都外貿網站建設要多少錢,請找那個售后服務好的洪澤做網站的公司定做!
在開發模式的時候,我們常用 nodemon 和 webpack 熱更新nodejs項目(如express)和前端項目(如vue),但需要部署的時候我們就不能再用開發環境的配置了,需要改成生產環境配置。為了使得項目可以穩健的運行在服務端,node可以使用nohup啟動,前端項目可以使用nginx代理。
但是為了更加規范管理,我們應該使用pm2來管理node項目。
nohup(不推薦使用)
作用:不掛斷地運行命令。
啟動后通過 ps -ef 可以查看進程和 pid,如果需要停止,輸入
需要特別注意的是,退出遠程時,要使用 exit 退出,直接關閉遠程工具將會導致后臺靜默進程停止。
盡管nohup是內置工具,但萬一服務拋異常,對外沒有反應,表現為無端停止服務,對維護不友好。
pm2(推薦使用)
相比 nohup,pm2 更加合理,推薦使用 pm2 部署。
首先全局安裝 pm2
為了方便,我們可以把 pm2 軟鏈接到系統環境下(假設 pm2 安裝路徑是/usr/sbin/nodejs/bin/pm2),
最后在項目中添加 pm2 配置文件, processes.json
其中 name 代表進程別名,script 代表需要執行的命令,env 是注入到服務中的變量。
最后修改 package.json 的 start 命令(項目為 express )為
如果需要查看 pm2 狀態,使用
表明通過 pm2 啟動項目。
停止或重啟服務使用
自動啟動
在實際情況下,偶爾會發生服務器宕機,可是重啟后pm2應用不會被自動啟動,這時候我們就需要去保存我們的pm2狀態,然后配置開機自啟。
執行后會輸出
這表示pm2把當前應用列表啟動信息保存到了磁盤文件上
執行后輸出
這表明pm2往系統中寫入了開機啟動任務,開機是自動啟動上次pm2保存的應用列表
這時候如果想測試,可以手動重啟服務器試一下,查看一下pm2應用任務是否正確啟動
再也不用擔心重啟后服務不起了。
nginx
作為一個高性能的http和反向代理服務,在linux上不免要選用它。
安裝教程
代理教程
對于Web而已,80端口和443端口是十分重要的,原則上需要輸入 才可以瀏覽網頁的,但由于默認端口是80,所以‘:80’可以忽略。同理對于https的443端口也一樣。
所以我們常常需要在80端口監聽多個服務,這就必須要用上nginx的代理功能了。用法如下:
常規配置
代理配置
nginx如果檢測到vue.msg.com的請求,將 轉發 請求到本機的8080端口,如果檢測到的是react.msg.com請求,也會將請求 轉發 到8081端口。
同樣的,如果前面用pm2開啟了node項目,而且運行在3000端口,并且已經做好了域名映射,如(api.msg.com),我們可以同理配置代理
上面就是linux上部署項目的教程(后續介紹 docker部署 )。
前期準備:準備一臺服務器,我這里用的華為云,租的時候點按需計費就行,2核4G的大概0.5元/小時,搭建+部署項目大概不到1塊錢吧。
購買服務器步驟如下:
配置環境變量 在/etc/profile 這個文件里面配置
操作命令:vim /etc/profile 按 i 鍵編輯 按Esc鍵取消編輯 輸入:wq保存退出
執行操作命令:source /etc/profile (讀取并加載文件)
---寶塔端口在云服務器上放行
終端登陸mysql,進行修改
4。打包前后端服務
訪問測試
至此整個流程就弄完了,記錄一下。
(1)java -jar? 包名? ? ? ?當窗口關閉或按Ctrl+c則程序終止
(2)java -jar 包名 ? ? ?當窗口關閉則程序終止
(3)nohup java -jar 包名 ? ? 程序不因窗口關閉或按Ctrl+c而終止,生成默認日志文件
(4)nohup java -jar 包名 日志名 ? ?在(3)的基礎上自定義生成日志
(1)tail n 日志名? ? n代表查看日志的行數
例子:tail 10 nohup.out? 查看正數10行的日志
例子:tail -10 nohup.out 查看倒數10行的日志
(2)tail -f nohup.out?實時查看日志
(1)ps -ef | grep java? ?查看進程
???
(2)netstat -tunlp? ?端口號查看
kill -9? pid
例如查找文件名為nginx的文件? ? ?find? /? -name? nginx
(1)找到并進入nginx文件夾下的sbin文件夾
(2)執行? ./nginx? -s? reload
free 命令? ? 默認以kb為計算單位,可以在后面通過添加? -b ,-m ,-g ,-h等修改計算單位
例如 free? -h以較友好的方式展示
按理來說total = used + free ,但是這邊不曉得為什么free只剩了123M,有答案了再來補上
top 命令
top 行依次為系統時間、距上次重啟系統時間、登入用戶數、平均負載
tasks 行為進程任務情況
cpu 行為cpu的使用情況
暫時沒了,想起來再補
java 應用程序在linux部署方法:
1,將項目達成war包(用eclipse,項目右鍵--Export--選擇war file)
2,將tomcat(用winSCP當然也可以用secureCRT,用securCRT需要建立sftp(即上傳文件的目錄),用put tomcat命令)考到ilunx對應的目錄下
3,然后將項目的war包放到tomcat的webapps目錄下
4,啟動tomcat(命令:./startup.sh(linux下啟動tomcat是.sh文件而非.bat文件))
遇到問題如下:
運行./startup.sh 是報錯
-bash: ./startup.sh: Permission denied
原因:沒有運行.sh的權限
解決:chmod 777 *.sh
755 代表用戶對該文件擁有讀,寫,執行的權限,同組其他人員擁有執行和讀的權限,沒有寫的權限,其他用戶的權限和同組人員權限一樣。
777代表,user,group ,others ,都有讀寫和可執行權限。
獲得權限后再運行./startup.sh命令時報錯:
This file is needed to run this program
原因:該文件需要一個運行環境(即配置jdk環境變量)
解決:JAVA_HOME=/usr/java/jdk1.6.0_25/(當然這個目錄根據自己的jdk安裝目錄)
然后在運行./startup.sh 提示:
Using CATALINA_BASE: /usr/local/sarft/apache/apache-tomcat-6.0.29
Using CATALINA_HOME: /usr/local/sarft/apache/apache-tomcat-6.0.29
Using CATALINA_TMPDIR: /usr/local/sarft/apache/apache-tomcat-6.0.29/temp
Using JRE_HOME: /usr/java/jdk1.6.0_25/
Using CLASSPATH: /usr/local/sarft/apache/apache-tomcat-6.0.29/bin/bootstrap.jar
如果提示以上信息表明 tomcat啟動成功,可以正常run了。
額,命令只是基本操作,不是固定的。比如需要用cd命令打開文件夾,tar解壓文件,cp復制文件到某個目錄等等,這些不是固定的啊!
當前文章:linux應用部署命令 linux應用
文章鏈接:http://m.newbst.com/article42/hjpohc.html
成都網站建設公司_創新互聯,為您提供網站維護、ChatGPT、定制網站、網站導航、企業建站、外貿網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯