서버에 Golang 프로그램을 배포하는 방법
#🎜 🎜# 환경
개발 환경: mac생산 환경: CentOS 6.8 under virtualbox(가상 머신)# 🎜🎜#virtualbox
서버 환경#🎜 🎜 #
로컬 개발 Mac 환경 go env 매개변수
Process
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")
}
}
코드가 작성되었으니 이제 컴파일해야 합니다. Mac 환경은 Linux에서 실행되도록 컴파일되었으므로 모든 작업에는 크로스 플랫폼 컴파일이 포함됩니다.
컴파일 코드 명령
env GOOS=linux GOARCH=386 go build main.go
PS: 386 여기에는 큰 구덩이가 있고 여기에 이 패키지 프로그램을 실행하기 위한 플랫폼이 있습니다. Linux인 경우 uname -a를 사용하여 실행 중인 Linux 시스템 환경을 확인해야 합니다. 일반적인 환경에는 일반적으로 amd64, i386 등이 포함됩니다.
자, 컴파일이 완료되면 접미사 없이 기본 실행 파일이 생성됩니다. 이때 이 파일을 가상 머신에 업로드하고 직접 실행하기만 하면 됩니다.
직접 실행실행 후 위에 표시된 효과가 나타나면 실행 중이라는 의미입니다. 이때, 브라우저를 열고 서버의 IP:9000에 접속하시면 아래와 같은 내용을 보실 수 있습니다
Browser Picture#🎜🎜 #그렇습니다. 오늘이 첫 번째 배포인데 상당히 놀랐습니다. 예를 들어 Java 프로그램은 서버에 Java를 설치해야 하고, PHP는 설치해야 합니다. Apache, PHP 및 기타 실행 환경을 설치하세요. 아무것도 필요 없고 Linux 시스템만 있으면 됩니다.
당시 겪었던 함정은 다음과 같습니다
1 바이너리 파일을 실행할 수 없습니다#. 🎜🎜 #
바이너리 파일을 실행할 수 없습니다
이런 현상이 발생하는 이유는 컴파일 실행 환경이 잘못되었기 때문입니다. 이는 386 요구 사항입니다. 위의 실행 중인 서버의 환경으로 변경하고 uname -a를 사용하여 볼 수 있습니다. 2. 실행 중이지만 액세스할 수 없습니다이 문제는 일반적으로 서버의 방화벽이나 네트워크 문제로 인해 발생합니다.
서버의 방화벽 서비스인 iptables stop을 간단하고 무례하게 끈 뒤, 접속이 가능한지 확인해 보면 실제 프로덕션 환경에서는 방화벽을 끄는 것은 권장하지 않습니다. 실제 온라인 운영을 배포하려면 보안, 프로세스 보호 등이 반드시 필요합니다. 이 문서는 배포에 대한 소개일 뿐이므로 이에 대해 논의하지 않습니다.
더 많은 바둑 언어 지식을 알고 싶다면 PHP 중국어 웹사이트
go 언어 튜토리얼칼럼을 주목해주세요.
위 내용은 서버에 golang을 배포하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!