본문 바로가기

분류 전체보기57

mysql-bin 파일이 뭐야? 이 글은 MySQL 5.7 버전을 기반으로 작성하였습니다. 어느 날 갑자기 MySQL이 설치된 서버의 용량이 70%가 넘었다고 알림이 왔다. 당장 서버에 들어가 mysql 데이터 디렉터리(datadir)를 확인해 보니 아래와 같이 용량이 많은 mysql-bin 파일이 보였다. 1. mysql-bin이 뭐야? mysql-bin 파일은 MySQL 데이터베이스의 binary 로그 파일입니다. 이 로그는 MySQL에서 수행된 모든 Insert, Update, Delete 등의 트랜잭션이 커밋될 때 기록됩니다. 이를 통해 데이터의 복구 혹은 복제가 가능합니다. 예를 들어, 장애 발생 시 장애 발생 이전의 상태로 데이터베이스를 원복하거나 다른 서버로 복제 / Replication 등을 할 때 사용할 수 있습니다. .. 2023. 5. 24.
NGINX의 HTTP 메서드를 제한해보자 0. 왜 메서드를 제한해야 할까? 우리는 기본적으로 GET / POST 메서드를 가장 많이 사용합니다. 최근 들어 RESTful 한 API를 개발하고자 PUT / DELETE / PATCH 등을 사용하기도 하죠. 하지만 일반적으로 웹사이트에서는 HEAD / OPTIONS / TRACE 메서드를 사용할 일이 없습니다. 이에, 우리는 웹 애플리케이션에서 사용 중인 메서드만 OPEN 해놓을 필요가 있습니다. (KISA에서는 GET/POST만 열어두길 권고하고 있습니다. but. RESTful 한 API를 사용 중이라면 예외) 1. 메서드 제한 설정하기 각 server 블록에는 location 블록이 존재할 것입니다. 이 location 블록 안에 limit_except 디렉티브를 작성해 줄 것입니다. ser.. 2023. 5. 14.
HTTP 응답에서 NGINX의 버전 정보를 숨겨보자 왜 NGINX 정보를 숨겨야 할까? 웹서버의 정보와 버전이 명시되어 있다면 당연히 그 버전에 맞는 취약점을 찾아 공격을 시도할 것입니다. 이에 우리는 최소한 웹서버의 버전 정보라도 숨겨야 합니다. 취약점을 최대한 감추기 위해서요! 1. NGINX 버전 정보 숨기기 가장 먼저 설치된 엔진엑스의 버전 정보를 숨기려 합니다. 엔진엑스뿐 아니라 대개의 웹서버는 설정값 하나를 넣어주면 되는 일이기 때문에 간단합니다. http 블록 안에 server_tokens 옵션(default ON)을 off 설정해 주면 끝입니다. vi /etc/nginx/nginx.conf ... http { server_tokensoff; ... .. } 2. 설정 확인하기 재기동 후 설정이 적용됐는지 확인합니다. systemctl res.. 2023. 5. 13.
NGINX의 설정에 대해 쉽게 알아보자. 지난 포스트에서는 NGINX를 설치해 보았습니다. 이제 우리는 이 웹서버를 적절히 사용하기 위해 설정에 대해 알아보고자 합니다. 0. 들어가기에 앞서서 Apache, NGINX 등 모든 웹서버는 아마 설정에 따라 성능이 천차만별일 것입니다. 이에 어느 설정이 있는지, 그 설정이 어떠한 역할을 하는지에 대해 아는 것이 중요합니다. 이에 이번 포스트는 NGINX가 제공하는 기본 설정에 대해 쉽게 알아보겠습니다. 1. nginx.conf NGINX의 기본 설정 파일입니다. [user@server /]# cat /etc/nginx/nginx.conf user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/.. 2023. 5. 10.
웹서버 중 NGINX를 설치해보자! 본 포스트는 CentOS 7.9 버전을 기준으로 작성하였습니다. 0. Apache와 NGINX 실무에서 아파치 서버를 사용하다 보니 저도 개인적으로 자연스럽게 아파치를 사용하였습니다. 관성에 의해 사용하게 되었는데 한편으론 생각했습니다. 왜 요즘은 NIGNX(엔진엑스)를 주로 사용할까? 무슨 차이가 있을까? 막연하게 그냥 사람들이 많이 쓰니까 더 좋은 성능인가 보다. 하고 넘어갔으나, 불현듯 그럼 한번 써보자! 생각이 들어 설치해보고자 합니다. 1. NGINX yum Repository 추가하기 /etc/yum.repos.d 디렉토리 안에 nginx.repo 파일을 생성하고, 레파지토리 정보를 작성 후 저장합니다. vi /etc/yum.repos.d/nginx.repo [nginx] name=nginx .. 2023. 5. 10.
Docker의 Root Directory 위치를 변경해보자. 개발 중인 서버에 접근해보니 루트 디렉토리가 91% 사용 중이었습니다. (이미 조치해버려서 사진은 예시이다.) 우리 회사는 KT 공공 클라우드를 사용 중에 있는데, 루트 디렉토리를 고작 17GB 밖에 안줍니다. 어쨌든, 도커의 루트 디렉토리 증설은 불가피했습니다. 01. 루트 디렉토리 설정 확인하기 docker info | grep Root 명령어로 Docker Root Dir이 /var/lib/docker임을 확인했습니다. [root@abcd merged]# docker info | grep Root WARNING: bridge-nf-call-ip6tables is disabled WARNING: Running Swarm in a two-manager configuration. This configur.. 2023. 4. 24.