서버의 구성
nginx 웹서버
puma 웹서버
rails 어플리케이션 서버
구성인 서버에서 오류를 잡아 수정하는 일을 했다.
문제점 1. 메모리 부족
검색 기능을 가진 사이트가 접근이 안되는 현상이 있었고,
서버에 접속해보니 tailf log 가 실행되고 있었다.
에러 메시지가 자주 떴었는데 메모리 부족으로 mysqld 가 셧다운 되는 문제였다.
검색 기능이 mysql 을 필요로 했으나, 서버 컴퓨터 성능 부족으로 mysql이 꺼져버리는 문제였다.
(컴퓨터 서버 메모리가 고작 1GB 였으니 당연히 그럴만 하다)
top 명령어에 shift+m (메모리 순 정렬) 을 사용하니 mysqld가 30% 가 넘는 부분을 차지하고 있었고,
bundle, rails, nginx 등이 돌아가고 있었다.
swap 메모리를 사용해 1GB 대체 메모리를 하드시스크에서 차용하니 간단하게 해결됐다.
문제점 2. 검색엔진 크롤링 허용
다음은 구글 / 네이버에서 검색 결과가 나오지 않는 문제가 있었다.
이는 사이트의 루트 url / robots.txt 이 포털사이트의 검색엔진이 크롤링하는 것을 막아놔서 생기는 문제인데,
User-agent : *
Disallow :
로 수정하면 해결된다.
잠깐 첨언하자면,
Allow : / 와 Disallow : 는 같은 뜻인데,
일부 검색엔진에서 Allow : / 를 해석하지 못한다.
Disallow가 원칙적인 문법이다.
rails 서버의 루트 디렉토리는 /public 인데, 여기 파일을 아무리 수정해도 해결되지 않았다.
이유는 즉, 서버에 접근을 통제하는 서버가 여러명인데,
그중 가장 베이스(즉, 우선순위가 가장 높은)인 nginx 설정이 문제가 됐다.
nginx 의 접근 config 파일 : /etc/nginx/sites-available/default 파일 (확장자명이 없다. vi 로 편집가능)
에 /robots.txt 로 접근시 함수를 만들어놓은 것이 문제였다.
return 200 "User-agent : *\nDisallow : /" 로 설정한 것이 계속 응답했던 것이다.
해당 줄을 삭제하니 rails 서버가 요청을 처리하게 되고 /public/robots.txt 파일로 응답을 받을 수 있었다.
일주일 가량 기다리니 반영된 상태를 확인할 수 있었다.
♡도움이 되셨다면 공감 및 광고클릭으로 응원해주세욥 :D
'개발 > Linux & DevOps' 카테고리의 다른 글
[쌉꿀팁] 밋밋한 vim을 강력한 Vundle Vim 으로 파워업 시켜보자 (vimrc, nerdtree, vundlevim 설정) (0) | 2021.04.21 |
---|---|
DBCP 설정, maxIdle minIdle maxActive 얼마정도가 적합할까? (0) | 2021.02.22 |
리눅스 파일 내용 조회 (허가 거부 제외) /dev/null 로 흘리기, xargs 사용 (0) | 2021.02.18 |
톰국지 삼대장 (톰캣, 카탈리나, 재스퍼) 파헤치기 (3) | 2021.02.05 |
잘생긴 로그 수집기, Fluentd 플루언트디 (0) | 2021.01.27 |