ホームページ >バックエンド開発 >Golang >golang をサーバーにデプロイするにはどうすればよいですか?

golang をサーバーにデプロイするにはどうすればよいですか?

藏色散人
藏色散人オリジナル
2020-01-28 14:31:533833ブラウズ

golang をサーバーにデプロイするにはどうすればよいですか?

#Golang プログラムをサーバーにデプロイする方法

環境

開発環境: mac

本番環境: virtualbox 上の CentOS 6.8 (仮想マシン)

golang をサーバーにデプロイするにはどうすればよいですか?

virtualbox

golang をサーバーにデプロイするにはどうすればよいですか?

サーバー環境

golang をサーバーにデプロイするにはどうすればよいですか?

ローカル開発 Mac 環境 go env パラメーター

プロセス

go のコード

package main
import (
    "fmt"
    "log"
    "net/http"
)
func sayHello(w http.ResponseWriter, r *http.Request)  {
    fmt.Fprintf(w,"您看到我了")
}
func main() {
    http.HandleFunc("/",sayHello)
    log.Println("启动了")
    err := http.ListenAndServe(":9000",nil)
    if err != nil{
        log.Fatal("List 9000")
    }
}

以上です。コードの意味については詳しく説明しません。

コードは書かれたので、コンパイルする必要があります。コードは Linux で実行するために Mac 環境からコンパイルされるため、すべてにクロスプラットフォーム コンパイルが含まれます。

コンパイル コード コマンド

env GOOS=linux GOARCH=386 go build main.go

PS: 386 ここに大きな穴があります。ここが、このパッケージ化されたプログラムを実行するためのプラットフォームです。 Linux の場合は、una​​me -a を使用して、実行している Linux システム環境を確認する必要があります。一般的な環境には通常、amd64、i386 などが含まれます。

OK、コンパイルが完了すると、メインの実行可能ファイルがサフィックスなしで生成されます。現時点では、このファイルを仮想マシンにアップロードして直接実行するだけです。

golang をサーバーにデプロイするにはどうすればよいですか?

直接実行

実行後に上記の効果が表示された場合は、実行中であることを意味します。このとき、ブラウザを開いてサーバーの IP:9000 にアクセスすると、次のような内容が表示されます。

golang をサーバーにデプロイするにはどうすればよいですか?

#ブラウザの画像

#そうです。とてもシンプルです。今日が初めてのデプロイメントで、とても驚いています。言語環境は必要ありません。たとえば、Java プログラムの場合はサーバーに Java をインストールする必要があり、php の場合は Apache、PHP などをインストールする必要があります。 Go には何も必要ありません。Linux システムは 1 つだけで十分です。それを放り込むだけです。

その時に遭遇した落とし穴は次のとおりです

1. バイナリファイルが実行できないと表示される

golang をサーバーにデプロイするにはどうすればよいですか?

バイナリ ファイルを実行できません

この理由は、コンパイルの実行環境が間違っているためです。つまり、上記の 386 を実行しているサーバーの環境に置き換える必要があります。 uname -a チェックを使用できます。

2. 実行はできますが、アクセスできません

この問題は通常、サーバーのファイアウォールまたはネットワークの問題が原因で発生します。

サーバーのファイアウォール サービス iptables stop を単純かつ失礼に無効にして、アクセスできるかどうかを確認できますが、実際の運用環境では、ファイアウォールを無効にすることはお勧めできません。

実際のオンライン運用を展開する場合は、セキュリティやプロセス保護などが必ず必要になります。この記事は展開についての単なる紹介であり、これについては説明しません。

Go 言語の知識について詳しくは、PHP 中国語 Web サイトの

go 言語チュートリアル 列に注目してください。

以上がgolang をサーバーにデプロイするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。