Amazon Linux2 + Nginx + Go에서 Hello World
Amazon Linux2 + Nginx + Go에서 Hello World
사전 준비
빈 EC2 인스턴스를 미리 준비하십시오.
또한 인스턴스를 생성할 때 HTTP를 허용하는 보안 그룹을 설정합니다.
손수
# EC2インスタンスへのログイン
$ ssh -i example.pem ec2-user@<パブリックDNS>
# Goのインストール
[ec2-user@<ipアドレス> ~]$ sudo amazon-linux-extras install golang1.11
# Goのパス設定
[ec2-user@<ipアドレス> ~]$ vi .bashrc
# 下記の記載を追加
# export GOPATH="$HOME/go"
# export PATH=$PATH:$GOPATH/bin
# Nginxのインストール
[ec2-user@<ipアドレス> ~]$ sudo amazon-linux-extras install nginx1
# 初期設定のバックアップ
[ec2-user@<ipアドレス> ~]$ sudo cp -a /etc/nginx/nginx.conf /etc/nginx/nginx.conf.back
# Nginx の起動とインスタンス起動時自動起動の設定
[ec2-user@<ipアドレス> ~]$ sudo systemctl start nginx
[ec2-user@<ipアドレス> ~]$ sudo systemctl enable nginx
[ec2-user@<ipアドレス> ~]$ systemctl status nginx
# nginx.confの設定修正
[ec2-user@<ipアドレス> ~]$ sudo vi /etc/nginx/nginx.conf
server {
listen 80;
listen [::]:80;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
# 新規追加
# /fuga にきたらローカルホストの9000ポートにプロキシする
location /fuga {
proxy_pass http://127.0.0.1:9000;
}
# ここまで
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
# 設定ファイルのチェック
[ec2-user@<ipアドレス> ~]$ sudo nginx -t
# Nginx の再起動
[ec2-user@<ipアドレス> ~]$ sudo systemctl restart nginx
# Go で Hello World アプリケーションの起動
[ec2-user@<ipアドレス> ~]$ go run main.go
# 動作確認
$ curl http://<パブリックDNS>/fuga
Hello World!!!
[보충]main.내용
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/fuga", handler)
http.ListenAndServe(":9000", nil)
}
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello World!!!")
}
참고 자료
어플리케이션을 자동으로 시작하려는 경우
나는 EC2에서 Go를 지키는 방법 이후의 글을 썼다.
Reference
이 문제에 관하여(Amazon Linux2 + Nginx + Go에서 Hello World), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/c_su/articles/e2ff50bfa83a35dd7e22텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)