亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

GO項目部署Linux服務器的實現(xiàn)示例

 更新時間:2024年06月19日 09:27:50   作者:拔劍縱狂歌  
本文主要介紹了GO項目部署Linux服務器的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

最近在學習golang,和前端小伙伴一起寫了個H5小游戲,游戲數(shù)據(jù)采用websocket進行通信。由于是第一次部署go語言項目,在部署過程中遇到很多問題,寫下這篇文章進行總結(jié),希望可以幫助到部署遇到問題的朋友。

Golang項目和Java項目部署的不同

Golang項目相比于Java項目部署流程更加的簡單,不需要在服務器上下載語言環(huán)境,我們可以直接在服務器上運行編譯好的二進制文件

go語言能夠做到這一點的原因如下:

  • 靜態(tài)鏈接:Go 語言的編譯器會將程序的所有依賴包括在最終的可執(zhí)行文件中,這種方式稱為靜態(tài)鏈接。因此,生成的可執(zhí)行文件不需要依賴外部的動態(tài)鏈接庫或其他運行時環(huán)境,可以在沒有 Go 語言環(huán)境的服務器上直接運行。

  • 跨平臺支持:Go 語言的編譯器可以生成不同操作系統(tǒng)和架構(gòu)的可執(zhí)行文件,比如 Windows、Linux 和 macOS 等。這意味著你可以在開發(fā)機器上編譯生成 Linux 下運行的可執(zhí)行文件,然后將其拷貝到 Linux 服務器上直接運行,而無需關心服務器上是否安裝了 Go 語言環(huán)境。

  • 內(nèi)置運行時環(huán)境:Go 語言的可執(zhí)行文件中內(nèi)置了運行時環(huán)境,包括垃圾回收、調(diào)度器等,因此它們可以獨立運行,不需要額外的運行時支持。

對于Java來說,Java 語言在編譯時生成的是字節(jié)碼文件(以 .class 格式存儲),而不是直接生成可執(zhí)行的二進制文件。這些字節(jié)碼文件需要在 Java 虛擬機(JVM)上執(zhí)行,因此在服務器上運行 Java 程序仍然需要安裝 Java 運行時環(huán)境(JRE)或者 Java 開發(fā)工具包(JDK)。

 部署流程

1.確保自己的項目在本地可以正常運行和訪問;

2.查看自己的項目監(jiān)聽的端口號,本項目監(jiān)聽的是服務器私網(wǎng)IP的8090端口

 3.之后開始我們的編譯,設置編譯時候的環(huán)境變量,依次執(zhí)行下面命令

D:\SoftwareDevelop\GoFamily\GoWorks\klotski>set CGO_ENABLED=0
D:\SoftwareDevelop\GoFamily\GoWorks\klotski>set GOOS=linux
D:\SoftwareDevelop\GoFamily\GoWorks\klotski>set GOARCH=amd64
D:\SoftwareDevelop\GoFamily\GoWorks\klotski>go build

set CGO_ENABLED=0

  • 這個命令是在 Windows 系統(tǒng)下設置一個環(huán)境變量 CGO_ENABLED 的值為 0。CGO_ENABLED 是 Go 語言中用來控制是否啟用 C 語言的交互能力的環(huán)境變量,0 表示禁用了 CGO(Cgo 是一個 Go 包,用于調(diào)用 C 代碼)。

set GOOS=linux

  • 這個命令是設置一個環(huán)境變量 GOOS 的值為 linux。GOOS 是 Go 語言中用來指定目標操作系統(tǒng)的環(huán)境變量,這里將目標操作系統(tǒng)設置為 Linux。

set GOARCH=amd64

  • 這個命令是設置一個環(huán)境變量 GOARCH 的值為 amd64。GOARCH 是 Go 語言中用來指定目標體系結(jié)構(gòu)的環(huán)境變量,這里將目標體系結(jié)構(gòu)設置為 AMD64 架構(gòu)。

go build

  • 這個命令是使用 Go 工具編譯當前目錄下的 Go 源代碼文件,生成一個可執(zhí)行文件。根據(jù)前面設置的環(huán)境變量,編譯時會將目標操作系統(tǒng)和體系結(jié)構(gòu)設置為 Linux 和 AMD64。

編譯完成之后我們得到一個文件名為項目名無文件后綴的文件,我們將這一個文件傳輸?shù)絃inux系統(tǒng)上,在Linux中,我們找到上傳的文件目錄。

4.通過ls命令查看文件權(quán)限是否可執(zhí)行,如果文件為綠色,代碼可直接執(zhí)行。

如果不可執(zhí)行,使用chmod 755 ./klotski 更新文件權(quán)限

5.通過./文件名或者nohup命令執(zhí)行文件

#在當前路徑下執(zhí)行文件
./klotski
#通過絕對路徑執(zhí)行文件,只要能夠找到文件就可以
/opt/klotski/klotski

#通過上述方式雖然可以執(zhí)行文件,并且通過公網(wǎng)訪問項目,但是我們一旦關閉了當前連接,程序就會終止。通過讓當前程序在后臺運行的方式,可以解決這一問題
nohup ./klotski

程序運行成功會使服務器界面處于任務的狀態(tài),顯示訪問程序時的輸出,如果不是此狀態(tài),說明程序運行失敗,請檢查自己的程序和更改監(jiān)聽的端口IP

6.查詢程序運行時占用的端口

# 查詢我們的go語言二進制文件是否被執(zhí)行
# 注意我們程序運行的線程是隨機分配的,并不是8090端口,我們的程序僅僅建成8090端口的訪問情況
[root@wuqiong klotski]# ps aux | grep klotski 
root     29218  1.4  0.1 1230132 2512 ?        Sl   19:39   0:50 ./klotski
root     32492  0.0  0.0 112812   976 pts/0    S+   20:35   0:00 grep --color=auto klotski

# 關閉運行程序 后面的參數(shù)跟PID
kill 29218 

 7.別忘記放開服務器的安全組,開放我們程序監(jiān)聽的端口

到此這篇關于GO項目部署Linux服務器的實現(xiàn)示例的文章就介紹到這了,更多相關GO部署Linux內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • golang使用sort接口實現(xiàn)排序示例

    golang使用sort接口實現(xiàn)排序示例

    這篇文章主要介紹了golang使用sort接口實現(xiàn)排序的方法,簡單分析了sort接口的功能并實例演示了基于sort接口的排序?qū)崿F(xiàn)方法,需要的朋友可以參考下
    2016-07-07
  • Golang使用gorm實現(xiàn)分頁功能的示例代碼

    Golang使用gorm實現(xiàn)分頁功能的示例代碼

    在提供列表接口時一般要用到分頁,對于存儲在某些數(shù)據(jù)庫中的數(shù)據(jù)進行分頁起來非常的方便,下文給出一個通過gorm進行分頁并通過http返回數(shù)據(jù)的例子,感興趣的小伙幫跟著小編一起來看看吧
    2024-10-10
  • go env環(huán)境變量配置的使用

    go env環(huán)境變量配置的使用

    在安裝和使用Go時,必須要正確地配置環(huán)境變量,本文主要介紹了go env環(huán)境變量配置的使用,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • golang日志框架之logrus的安裝使用教程

    golang日志框架之logrus的安裝使用教程

    logrus是一個非常強大的日志框架,具有靈活的功能和易于使用的API,適合處理各種類型的日志需求,這篇文章主要介紹了golang日志框架之logrus的安裝使用,需要的朋友可以參考下
    2023-08-08
  • Golang負載均衡和?;钤O計原理示例探究

    Golang負載均衡和?;钤O計原理示例探究

    這篇文章主要為大家介紹了Golang負載均衡和?;钤O計原理示例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • CMD下執(zhí)行Go出現(xiàn)中文亂碼的解決方法

    CMD下執(zhí)行Go出現(xiàn)中文亂碼的解決方法

    需要在Go寫的服務里面調(diào)用命令行或者批處理,并根據(jù)返回的結(jié)果做處理。但是windows下面用cmd返回中文會出現(xiàn)亂碼,本文就詳細的介紹一下解決方法,感興趣的可以了解一下
    2021-12-12
  • 聊聊go xorm生成mysql的結(jié)構(gòu)體問題

    聊聊go xorm生成mysql的結(jié)構(gòu)體問題

    這篇文章主要介紹了go xorm生成mysql的結(jié)構(gòu)體問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2022-03-03
  • Go中并發(fā)控制的實現(xiàn)方式總結(jié)

    Go中并發(fā)控制的實現(xiàn)方式總結(jié)

    在Go實際開發(fā)中,并發(fā)安全是老生常談的事情,在并發(fā)下,goroutine之間的存在數(shù)據(jù)資源等方面的競爭,為了保證數(shù)據(jù)一致性、防止死鎖等問題的出現(xiàn),在并發(fā)中需要使用一些方式來實現(xiàn)并發(fā)控制,本文給大家總結(jié)了幾種實現(xiàn)方式,需要的朋友可以參考下
    2023-12-12
  • vim配置go語言語法高亮問題的解決方法

    vim配置go語言語法高亮問題的解決方法

    vim配置go語言語法高亮的問題已經(jīng)遇到過好幾次了,每次都是找不到答案,今天小編給大家?guī)砹藇im配置go語言語法高亮問題的解決方法,感興趣的朋友一起看看吧
    2018-01-01
  • Windows下在CMD下執(zhí)行Go出現(xiàn)中文亂碼的解決方法

    Windows下在CMD下執(zhí)行Go出現(xiàn)中文亂碼的解決方法

    在cmd下運行go程序或者是GOLAND的Terminal下運行go程序會出現(xiàn)中文亂碼的情況。本文就詳細的介紹下解決方法,具有一定的參考價值,感興趣的可以了解一下
    2021-12-12

最新評論