티스토리 뷰

저는 제 개인 인프라에 golang을 gateway로 이용하려고 합니다.

응답이 오면 뒷단의 MSA에서 응답을 받아서 다시 패스하는걸로

 

그럼과 동시에 docker-compose하여서 사용하는 방식으로 하여 보겠습니다.

 

1. go server 구동

go-server 띄우는 방식은 제 이전글에서 보시면 됩니다.

2020/03/31 - [Language/Go] - Golang으로 아주 간단하게 HTTP 서버 만들기

 

Golang으로 아주 간단하게 HTTP 서버 만들기

Go를 이용하여 아주 간단하게 루트(/)를 요청하면 응답이 갈 수 하는 코드 입니다. go-wrapper를 이용하여 구동만 시켜 주면 바로 서버가 됩니다. 1. HandleFunc 이용하기 package main import ( "net/http" ) fun..

mrgamza.tistory.com

 

2. Dockerfile 만들기

FROM golang:1.8

WORKDIR /go/src/app
COPY main.go main.go

RUN go-wrapper download
RUN go-wrapper install

EXPOSE 5000

CMD ["go-wrapper", "run", "app"]

 

3. reverse proxy nginx server

upstream app {
  server web:5000;
}

server{
  listen 80;

  access_log /var/log/nginx/access-portus.log;
  error_log /var/log/nginx/error-portus.log;

  location / {
    proxy_pass http://app;
  }
}

web이라고 이름을 주고 만들었는데 저의 경우에는 저렇게 하면 저 서버를 찾지 못해서 정상적으로 구동이 되지 않았습니다.

그래서 저는 수기로 ip를 지정하여 주었습니다. 192.168.9.1 이런식으로...

 

4. docker-compose.yml 파일 만들기

version: '3'

services:
  web:
    build: .

  nginx:
    image: nginx:latest
    links:
      - web:web
    volumes:
      - ./default.conf:/etc/nginx/conf.d/default.conf
    command: ['nginx', '-g', 'daemon off;']
    ports:
      - 80:80

설명을 드리면 web은 build를 하여주게 되는것이고, nginx는 latest버전을 사용하면서 volumes를 같이 사용하도록 되어있습니다.

위에 보면 links에 web을 지정하여 두었는데 잘 안되서... 혹시나 수정되면 바로 수정해둘게요

 

5. docker-compose 하기

$ sudo docker-comose up

이렇게 하면 docker가 구동이 되고 화면에 로그가 나오게 됩니다. 백그라운드로 구동하고 싶다면 다음과 같이 하세요

$ sudo docker-compose up -d

잘 돌고 있는지 확인 하는것은 다음과 같습니다.

$ sudo docker ps -a

 

6. test

$ curl localhost:80
Hello World

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함