Category: HowTo

Nginx Gzip Compression 설정

HTTP 에서도 압축전송을 지원 합니다. 이는 Header 에 압축에 대한 정보가 다음과 같이 담깁니다. Nginx Gzip Compression 설정 은 다음과같이 하시면 됩니다.

압축전송을 하게되면 트래픽을 줄일 수 있어, 서버 호스팅을 이용하는 분들에게는 큰 도움이 됩니다. 사용법은 다음과 같습니다.

잘 동작하는지 다음과 같이 테스트를 할 수 있습니다.

“Content-Encoding: gzip” 이 보이면 정상으로 설정이 된 것 입니다.

smartctl을 이용한 하드디스크 진단

컴퓨터에서 디스크의 의미는 매우 중요합니다. 사람의 데이터를 영구적으로 보관해야 할 의무를 가지 때문이지요. 이러한 디스크에 문제가 발생한다면 데이터를 영구적으로 잃을 수도 있고 오늘과 같이 IT 를 기반으로 사회가 움직이는 마당에 그러한 일이 발생한다면 큰 금전적인 손실을 입을 수도 있습니다.

이렇게 중요한 디스크의 문제나 오류를 차단하기 위해서는 주기적으로 점검을 해야할 필요가 있는데, 리눅스 시스템에서는 이러한 유용한 도구를 제공 합니다.

smartctl

smartctl 도구는 S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) 기능이 탑재된 하드디스크를 점검하는 도구 입니다. 사실상 S.M.A.R.T 의 기능을 이용하는 도구이다보니 이 기능이 없는 하드디스크는 이 도구를 이용할 수가 없습니다. 하지만 걱정할 필요는 없습니다. S.M.A.R.T. 기능은 오래전부터 있었던 것이라 왠만한 하드디스크에는 모두 지원되고 있습니다.

먼전, 간단한 디스크 정보도 볼겸 하드디스크에 S.M.A.R.T. 가 기능이 있고 활성화가 되어 있는지를 다음과 같이 해봅니다.

‘-i’ 옵션을 주고 리눅스에서 하드디스크 장치를 인자로 주면 위와같은 결과를 보여줍니다. 주목해야 할 것은 맨 아래에 있는 ‘SMART support is: Enabled’ 입니다. 또, 자세히 보면 ‘/dev/sda’ 의 하드디스크 정보도 함께 파악할 수 있습니다.

참고로, 위의 결과는 하드디스크마다 다 다릅니다. 다른 하드디스크를 봐보겠습니다.

자세히 보면 이전 결과와 달리 ‘SATA Version is:’ 라고해서 SATA 버전도 나오고 ‘Rotation Rate’ 이라고해서 하드디스크의 회전수인 RPM 도 나옵니다. 추가적으로 WARING 을 통해서 이 하드디스크의 최신 펌웨어 정보가 있으니 업그레이드해보라고까지 나옵니다.

다음으로 좀 더 많은 자세하고 많은 정보를 봐보겠습니다.

‘-a’ 옵션을 주면 위와같이 상세한 정보가 나옵니다. 눈여겨 보실 부분은 중간에 나온 ‘SMART Attributes with Thresholds’ 부분 입니다. 각 항목별로 오른쪽에 수치가 나옵니다. 각각의 항목별은 의미가 다 있는데, 여기서 집중해서 봐야할 항목은 다음과 같습니다.

  • Raw_Read_Error_Rate : 디스크로부터 데이터를 읽을때에 발생한 오류 비율. 외부에 물리적으로 충격이 가해지면 이 수치가 치솟는다고 합니다.
  • Reallocated_Sector_Ct : 섹터에 문제가 발생할 경우에 대체영역으로 섹터를 바꾼 횟수
  • Seek_Error_Rate : 하드디스크에서 데이터를 찾는 동안에 발생한 탐색 오류 비율.
  • Offline_Uncorrectable : Offline 은 전원이 없는 상태를 말하며 하드디스크가 꺼졌을때에 잘못된 섹터 갯수로 매우 심각한 상태를 말한다.
  • UDMA_CRC_Error_Count : 데이터 전송시에 발생한 CRC 체크섬 오류 횟수.

위 부분에 수치들이 높게 나온다면 문제가 있다고 봐야 하며 될수 있으면 하드디스크 구매한 곳에가서, A/S 기간이 남았다면, 교체를 요청해야 합니다.

특히나 서버에서 사용되어지는 하드디스크는 다른 하드디스크들보다 중요성은 말할 필요도 없겠지요. smartctl 을 통해서 미리미리 장애를 대응함으로써 중요한 데이터를 보호할 수 있습니다.

 

iptable 의 hashlimit 를 이용한 접속 제한

보통 DDOS 공격과 같은 경우에 초당 몇 십개에서 몇백번건의 접속을 시도 합니다. 이러한 초당 수백건의 접속을 이용해서 iptables 의 hashlimit 를 이용한 접속 제한을 할 수 있습니다.

예를들어 초당 20번 이상 접속을 시도하는 것을 차단하고 싶다면 다음과 같이 지정하면 됩니다.

이 차단은 약 1시간 동안 유지됩니다.

 

CentOS IPv6 비활성화

IPv4 의 부족분을 대체하기 위해서 IPv6 가 개발되었지만 아직까지 사용빈도가 높지않아 리눅스 IPv6 비활성화 시켜서 자원을 아낄 수 있습니다. 기본적으로 CentOS 6, 7 에서는 IPv6 가 활성화 되어 있습니다.

위와같이 IPv6 가 사용 됩니다.

CentOS 6 

1. IPv6 커널 모듈 비활성화

다음과 같이 IPv6 커널 모듈이 로딩되지 않도록 해줍니다.

2. 커널 파라메터 추가

다음과 같이 IPv6 커널 파라메터를 추가해 줍니다.

이제 재부팅을 해주면 IPv6 가 비활성화 됩니다.

CentOS 7

1. Grub2 IPv6 비활성화 옵션 추가

이와같이 GRUB_CMDLINUX_LINUX=”ipv6.disable=1 …” 를 추가 합니다.

그리고 다음과 같이 Grub 을 재성해 줍니다.

 

위 절정을 다하고 시스템을 reboot 해주면 IPv6 가 비활성화 됩니다.

Man 페이지 텍스트, PDF로 저장

Man 페이지 텍스트 파일로 저장.

 Man 페이지 PDF 파일로 저장.

Man 페이지 HTML 파일로 저장. 

먼저 패키지를 설치해야 합니다.

그리고 다음과 같이 해줍니다.

 

Man Page 컬러로 보기

리눅스의 Man Page 는 컬러가 아닙니다. 흑백으로만 나옵니다. 중요한 내용에 컬러를 입히면 눈에 잘 들어올텐데, 이걸 가능하게 하는 방법입니다.

‘source ~/.bashrc’ 를 해주면 바로 적용 됩니다.

그런데, xterm 을 사용하고 있다면 다음과 같이 .Xdefaults 에 다음과 같이 해줍니다.

그리고 다음과 같이 적용을 해줍니다.

출처: http://www.cyberciti.biz/faq/linux-unix-colored-man-pages-with-less-command/

Bash 패스워드 생성기.

쉘 스크립트에서 간단하게 패스워드를 생성할 수 있습니다.

사용법은 다음과 같습니다.