• 목록
  • 아래로
  • 위로
  • 5
  • Seia
  • 조회 수 314

사실 저는 SKT의 100회선을 이용하면서 예전에 네트워크 문제로 많이 골탕을 먹은적이 있습니다.


평소 사용에는 이 지역은 KT보다 SKT가 50% 이상 빠를정도로 만족하고 사용하고 있습니다만 (100인데 speedtest에서 140Mbps나 퍼주다뇨) 서버가 구르기 시작하면 트래픽으로 회선에 가끔이지만 QoS가 걸리거나 라우터가 터지거나 공유기까지 성능 이슈로 터지는 경우가 나타납니다.


그래서 이번에 집에 미디어서버를 다시 구축하면서 어떻게 하면 훨씬 더 빠르게 미디어를 로드할 수 있을까?에 관한 내용입니다.


왜냐하면 VPS 회사마다 각각 네트워크 속도에 차이가 있기 때문에 개인적으로 이 방법이 항상 빠른 것도 아니라고 생각합니다만 저의 경우에는 기존보다 훨씬 원활하게 스트리밍할 수 있었기 때문에 팁으로써 올립니다.


먼저 서버가 한 곳에서의 요청만을 받아주므로써 얻는 이득에 관하여 생각해봤습니다. 먼저 VPS는 10Gbps의 회선을 사용합니다, (일본의 미러사이트에서 우분투 이미지를 다운로드 시 초당 800MB 이상의 다운로드 속도를 냅니다.) 그러므로 대역폭은 공유 서버여도 3Gbps 정도는 받고 가는 것이나 마찬가지입니다.


그래서 왜 VPS를 통해 접속하는 것이 더 빠를까요?


제 생각으로는 이렇습니다. 원본 서버를 100 회선을 사용하고 있는 서버라고 칩니다.

1. HTTP에서 Timeout 등의 이슈가 낮은 성능의 네트워크 망에 있는 서버에서 발생하지 않으므로 원본 서버에 동시접속자를 줄일 수 있음

2. 원격지 서버의 넓은 대역폭과 빠른 네트워크를 사용하여 훨씬 빠르게 액세스 가능 (집과 해당 서버는 약 30~40ms의 지연이 있습니다)


위 이유로 일단은 NGINX에 리버스 프록시를 사용했습니다. + 또한 보안연결을 사용합니다. (원본 서버에서 추가적으로 자원을 소모할 필요가 없습니다)


아래는 NGINX 서버의 구성입니다.


... # Gzip 세팅 등

location / {

  proxy_pass https://원본서버;

}

작성자
Seia 33 Lv. (42%) 89400/92480EXP

GitHub에서 seia-soto로 활동 중입니다.

댓글 5

NoYeah
profile image
nginx는 웹서버 기본적인 성능도 가벼워서 좋지만 가장 빛나는 기능은 프록시 패스 기능이죠!
comment menu
2018.12.05. 00:01

신고

"NoYeah님의 댓글"

이 댓글을 신고 하시겠습니까?

Seia 작성자 → NoYeah
profile image
아파치가 눈에 안 뵙니다 ㅋㅋㅋㅋ

사실 아파치보다 엔진엑스를 먼저 접한 것도 있지만 그래도 설정 편한거는 못 버립니다

프록시같은 경우에는 정말로 만족하며 살아요

NodeJS 앱도 보통 보안상의 이유로 아파치나 엔진엑스 뒤에서 돌리는 경우가 많은데 말이죠 (대부분이 아니라 100%가 맞지만요..!
comment menu
2018.12.05. 01:52

신고

"Seia님의 댓글"

이 댓글을 신고 하시겠습니까?

이니스프리
profile image

저는 QoS 관련하여 주로 VPN을 사용하고 있는데

어차피 Vultr가 널럴하게 놀고 있으니 Seia 님의 방법도 사용해봐야겠네요 :)

Squid까지 설치해놓았거든요.


아참~ 저는 seia.io 사이트의 핑이 저녁시간대에는 80ms대가 나오는데요.

지인이 리노드에서 20달러짜리 플랜을 사용하는 사이트도 거의 유사한 핑이 나오더군요.

테스트한 환경은 저번에 말씀드렸듯이 기가인터넷이 아닌 KT 회선이에요 ^^

요새 SKB가 해외망을 많이 확충했다고 알고 있는데 일본쪽 회선은 이미 KT를 앞지른 것이 아닐까요? ㄷㄷ

아마도 KT에서 보다 강하게 QoS를 거는 것 같네요.

comment menu
2018.12.08. 14:29

신고

"이니스프리님의 댓글"

이 댓글을 신고 하시겠습니까?

다운이즈나우
글을 봐도 이해력이 딸리는.. 전문가들은 다르네요
comment menu
2018.12.25. 09:54

신고

"다운이즈나우님의 댓글"

이 댓글을 신고 하시겠습니까?

Seia 작성자 → 다운이즈나우
profile image
헉.. 아닙니다 ㅠㅜ
comment menu
2018.12.25. 14:42

신고

"Seia님의 댓글"

이 댓글을 신고 하시겠습니까?

권한이 없습니다.
번호 제목 글쓴이 날짜 조회 수
공지 [작업 완료] 설 명절 맞이 서버 업데이트 안내 3 마스터 마스터 24.02.11.17:21 735
공지 [중요] 호스팅 만료와 관련하여 일부 수칙이 변경됩니다. 4 마스터 마스터 23.01.14.02:23 4404
546 [Python] 변수의 이름을 반환하는 함수 이니스프리 이니스프리 24.04.20.23:29 60
545 [Python] Tabulate 모듈로 작성한 테이블을 파일로 저장할 때 에러가 발생하는 경우 이니스프리 이니스프리 24.04.20.23:45 60
544 색상선택 결정문제를 겪고 계신 분들 위한 사이트 OAUTH2 20.06.19.18:22 69
543 [Python] 독일어, 스페인어, 체코어 등 철자를 영문 알파벳으로 전환하기 이니스프리 이니스프리 6일 전17:15 74
542 database 백업 및 복원을 지원하는 site입니다. 해피보이 20.06.03.20:52 77
541 [Python] Table을 쉽게 만들어주는 모듈x2 이니스프리 이니스프리 24.04.18.22:04 79
540 [펌] Chrome will soon be less of a memory hog in Windows 10 3 이니스프리 이니스프리 20.06.24.00:12 82
539 [Python] Ubuntu에서 파이썬이 설치된 디렉토리를 간단히 확인하는 방법 2 이니스프리 이니스프리 20.08.03.22:58 88
538 [Javascript] 값을 이용하여 배열의 요소를 삭제하는 방법 이니스프리 이니스프리 21.04.13.22:10 97
537 순수 React만으로 다이내믹 태그 네이밍하기 Seia Seia 20.01.20.19:18 104
536 React 그리고 Redux 쉽게 이해하기 image Seia Seia 20.09.12.06:31 104
535 [Python] 문자열에서 파일명 또는 폴더명으로 시스템상 지원되는 글자를 제외하고 삭제하기 이니스프리 이니스프리 20.11.01.14:37 104
534 나리야 익명보드 및 내 글 알림 관련 Q&A image 이니스프리 이니스프리 21.02.14.17:30 107
533 [Python] dictionary 2개의 평균을 구하여 내림차순 정렬하기 이니스프리 이니스프리 6일 전17:29 108
532 [Python] 크롤링한 bytes를 string으로 변환 이니스프리 이니스프리 21.02.14.15:32 109
531 중국 배대지 휴무 이니스프리 이니스프리 20.01.14.13:01 112
530 [Python] 정규식을 사용하지 않고 웹페이지의 자바스크립트를 파싱 이니스프리 이니스프리 24.04.17.21:12 113
529 [Python] 3개의 list를 하나의 dictionary로 변환하기 이니스프리 이니스프리 20.06.10.21:47 114
528 IPVanish의 한국서버가 4개로 확충되었습니다. image 이니스프리 이니스프리 20.01.11.11:27 116
527 헷갈리는 출생지를 가진 인물들 1 이니스프리 이니스프리 20.06.26.21:09 116