NGINX 다운로드 속도 제한

NginX IT SERVER

특정 도메인 혹은 서비스의 다운로드 속도를 제한하려면 아래와 같이 처리하면 된다. 위와 같은 설정의 경우 초당 전송량을 1000k로 제한한다. 10M과 같이 세팅하면 초당 10Mb를 전송 가능하다. 초반 500Mb까지는 제한 없이 제공하다가 넘어서는 순간 속도를 제한 할수도 있다.아래와 같이 설정해주면 된다. 위의 설정은 500Mb까지는 제한 없이 전송 하다가 트래픽이 500Mb가 넘으면 초당 전송률이 5000k로 제한된다. 위의 …

Continue Reading

Ubuntu run level 확인 및 변경

LINUX SERVER

얼마 전에 황당한 일을 겪었다.운영중인 서버가 응답을 하지 않아서 콘솔에서 로그인하여 이것저것 확인해보고 있으면 어느새 서버가 살아나서 응답을 하고, 또 일정 시간이 지나면 응답을 하지 않는 상황.정확한 것은 아니지만 최근 설치한 GPU 드라이버 때문이 아닌가 싶다.원래 OS 설치시에 서버용으로 설치했기에 CUI 모드로 부트가 되는데, GPU 드라이버 설치 후 알 수 없는 이유에 의해 부트 모드가 …

Continue Reading

NGINX 커스텀 에러 페이지 설정

NginX

NGINX 사용 시 404 혹은 403, 500 에러 발생 시 nginx 자체의 default 에러 페이지를 보여주게 된다. 아주 투박하고 멋스럽지 않다. 다른 디자인의 에러 페이지를 보여주고 싶은 경우 다음과 같이 세팅하면 된다. 위와 같이 server 블록 내에 error_page 항목에 status code와 대응하는 파일을 작성해주고, location 블록의 root에 해당 파일의 절대경로를 적어주면 된다.아래는 위의 코드가 적용된 …

Continue Reading

Docker 기본 데이터 디렉토리 변경

Docker IT SERVER

개발용으로 사용중인 서버 메인 디스크 용량이 100%가 되는 바람에(!) 작동이 원활하지 않아서 로그 디렉토리를 확인해보니 로그 용량 문제도 아니고 뭔가 싶어서 확인해보니 docker volumes의 용량이 디스크 대부분을 차지한 것이다. 검색 해보니 기본 데이터 디렉토리를 변경해주면 되는지라 일단 도커 프로세스를 종료시켰다./etc/docker/daemon.json의 내용에 다음과 같이 추가해줬다. 그리고 기본 디렉토리인 /var/lib/docker을 다른 디스크로 위치시켰다.편의상 위의 코드처럼 /docker/data/path라고 하자. …

Continue Reading

haproxy health-check 시 http status 에 따라 서비스에 포함시키기

HAProxy

haproxy로 reverse proxy구성 시 backend 구성 서버들의 health check를 한다.down된 서버는 proxy에서 제외시켜주고 up된 서버는 다시 포함시켜 주는 역할을 하는데문제는 backend에 포함된 서버가 boot 시간이 소요되는 서버라면..?예를들면 작은 사이즈의 spring boot 앱의 경우 약 10초 미만의 부트시간을 갖는데, 부트가 완료되어서 response를 할 수 있는 상태가 되기 전에 haproxy의 서비스에 포함되어서 그 순간 접속한 클라이언트는 response를 …

Continue Reading

Private Docker Registry를 Docker container로 세팅하기

Docker IT

내가 기억하기 편하도록 정리하는 글이라 핵심만 정리하고 있음. 개요.개인적인 or 사내 프로젝트에 사용하는 이미지들을 도커허브에 public 으로 올릴수는 없으니 (있지만 돈이 든다.) 프라이빗 레지스트리를 세팅하여 사용하기 위함. SSL 및 인증을 추가하여 보안에도 신경을 쓴다. (IP Access Control까지 해주면 더욱 좋다.)인증 부분은 registry 컨테이너 내부에서 진행하고, SSL은,,, 컨테이너 및 nginx에서 처리.. (중복…?!) 진행.1. registry로 사용할 도메인을 …

Continue Reading

header에 _포함 시 nginx proxy 에 전달되지 않을 경우

NginX IT

Nginx로 Reverse Proxy를 구축하고 뒷단에 node.js로 API 서버를 돌리는 중 이상하게도 header key에 _가 포함되어있을 경우 정상적인 response를 하지 않는 현상을 발견하고 검색해본 결과. nginx에서는 기본적으로 헤더에 _가 있으면 제거하고 전달한다고 한다.CGI 변수 맵핑 시 발생하는 문제점을 방지할 목적이라고 하는데 나는 _이 필요하다고…! nginx의 server이나 http block에 다음과 같은 옵션을 하나 추가해둔 뒤 nginx를 reload …

Continue Reading

httpd, mysqld 네트워크 외부로 커넥션 허용

LINUX SERVER DB

selinux 가 실행중일 때 아래와 같이 네트워크 관련 옵션이 on 되어있지 않으면 내부에서 외부로의 네크워트 연결이 불가하다.아래와 같이 명령 해주면 정상적으로 커넥션이 가능하다.. setsebool httpd_can_network_connect onsetsebool httpd_can_network_connect_db onsetsebool mysql_connect_any onsetsebool mysql_connect_httpd on

Continue Reading

NginX – 413 Request Entity Too Large 해결

NginX SERVER

httpd를 사용하다가 최근에 nginx를 도입하여 사용하고 있다.처음 사용하다보니 시행착오들이 발생하고 있다. 잘 운영되던 사이트에 이미지 파일이 업로드 되지 않는다는 리포트들이 들어오고…내가 테스트할 때는 아무 이상 없이 잘 올라가는데..? 알고보니 파일 업로드 용량 제한 때문이었다. nginx의 기본값은 1Mb로 그 이상의 파일을 업로드하려고 하면 413 Request Entity Too Large 에러가 발생한다. 해결 방법은 nginx.conf의 http 섹션에 다음과 …

Continue Reading