10P by xguru 2021-09-27 | favorite | 댓글과 토론

- nginx 설정을 맘대로 바꿔서 테스트 가능한 플레이 그라운드
ㅤ→ config 와 curl/http 명령을 입력하고 Run을 눌러서 실행
ㅤ→ 실행한 명령의 결과와 nginx 에러 로그를 보여줌
- Vue.js 프론트 + Go 백엔드(Gist로 서버코드만 공개)
- 실행 버튼을 누르면 Go 백엔드가 다음의 일들을 수행
ㅤ→ 설정파일을 temp 파일로 저장
ㅤ→ 새로운 네트워크 네임스페이스 생성
ㅤㅤㅤip netns add $RANDOM_NAMESPACE_NAME
ㅤ→ go-httpbin 을 777 포트로 실행
ㅤ→ nginx 시작
ㅤ→ nginx 제대로 실행될때까지 100ms 대기. 실패하면 nginx 에러로그 리턴
ㅤ→ 사용자가 입력한 명령 실행 (curl / http 로 되어있는지 확인)
ㅤ→ 요청의 출력 리턴
- 1대의 공유 서버로 모든 요청을 처리

- 보안 적인 접근 : 약간의 isolation, 약간의 YOLO
ㅤ→ 프론트엔드는 CDN에서 호스트
ㅤ→ DB 사용안함. 브라우저 로컬 스토리지만 사용
ㅤ→ 모든 nginx는 자신의 네트워크 네임스페이스에 두기. 인터넷 접속 못하게 막음
ㅤ→ fly.io 의 무료티어 사용
ㅤ→ 사람들한테 nice 하게 행동하도록 FAQ에 넣기

- 성능
ㅤ→ 아주 작은 인스턴스(1 shared CPU, 256MB 램)
ㅤ→ 프론트엔드는 CDN이어서 백엔드는 실제 사용할때만 가동
ㅤ→ 요청 하나는 400ms 정도 걸림. 나쁘지 않음
ㅤ→ Go 버전 httpbin 이 오리지널 파이썬 버전 보다 가벼움
ㅤ→ 프론트엔드 성능은 그다지 좋지는 않음