Rails + Unicorn + Nginx + EC2 + ELB 구성으로 웹 사이트에 액세스 할 수없는 경우의 원인
이번에는 특히 웹 앱 인프라에서 발생하는 경향이 있다고 가정합니다.
자신이 만난 사건입니다.
웹 앱 구성
사용하는 것
프레임워크
Rails
웹 서버
Nginx
기타 서버
Unicorn
로드 밸런서
ELB
인프라
EC2
라고 하는 구성으로 서비스 운영하고 있다고 합니다.
이 구성은 Rails + 클라우드 구성으로 서비스를 만들 때 흔히 볼 수 있는 구성이라고 생각합니다.
원인 그 1: Unicorn 정지
이 상황인지 확인하는 방법
웹
ssh 로그인하여 unicorn이 실행 중인지 확인합시다.
EC2에 로그인 후
$ ps aux | grep unicorn
에서 확인해 봅시다.
해결 방법
unicorn을 다시 시작합니다.
참고) ぃ tp // 이 m/모온스바루/있어 ms/09df180736f09c995954
원인 그 2: Nginx 정지
이 상황인지 확인하는 방법
또한 ssh 로그인하여 nginx가 실행 중인지 확인해 봅시다.
EC2에 ssh 로그인 후
$ ps aux | grep nginx
를 치자.
해결 방법
Nginx 재부팅
EC2에 ssh 로그인 후
$ nginx
합시다. 경우에 따라 sudo를 붙여야합니다. .
원인 3: EC2가 ELB에서 분리됨
상황
웹서버가 ELB의 헬스 체크에 응답할 수 없어, OutOfService가 되어 버렸을 가능성이 높습니다.
이 상황인지 확인하는 방법
IP 주소에 웹 브라우저에서 액세스해보고 화면이 정상적으로 표시되는 경우는 이 상황입니다.
해결 방법
ELB의 응답에 올바르게 응답하도록 합시다.
이번에는 응답 할 수 없다는 것이므로,
"서버 측에서 무거운 처리가 실행되고 응답이 느린"
라고 하는 경우이므로 2가지의 대응을 합니다.
무거운 과정을 죽인다.
그 처리가 소중한 경우 어떻게 해야 한다는 것은 두고
$ kill <プロセスid>
에서 처리를 중지할 수 있습니다.
상태 점검 설정 변경
AWS Management Console에서 EC2를 선택한 후,
사이드바에서 로드 밸런서를 선택합니다.
그런 다음 상태 확인 탭을 선택하고 상태 확인 편집을 누릅니다.
고급 세부사항이라는 항목을 변경합니다.
응답 시간 초과를 늘리면 응답 속도가 느려집니다.
"비정상 임계값", "정상 임계값"도 변경하여 조정하는 것도 좋을 것입니다.
이 편집은 ELB에 연결된 서버를 InService로 만드는 비상 대응이므로,
정상적으로 작동할 수 있는 상태로 서비스를 되돌리면 숫자도 되돌리십시오.
마지막으로
웹 브라우저로 액세스하면 어쩐지 알 수 있습니다.
Reference
이 문제에 관하여(Rails + Unicorn + Nginx + EC2 + ELB 구성으로 웹 사이트에 액세스 할 수없는 경우의 원인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gp333/items/70c9ed28f9fa182023e0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이 상황인지 확인하는 방법
웹
ssh 로그인하여 unicorn이 실행 중인지 확인합시다.
EC2에 로그인 후
$ ps aux | grep unicorn
에서 확인해 봅시다.
해결 방법
unicorn을 다시 시작합니다.
참고) ぃ tp // 이 m/모온스바루/있어 ms/09df180736f09c995954
원인 그 2: Nginx 정지
이 상황인지 확인하는 방법
또한 ssh 로그인하여 nginx가 실행 중인지 확인해 봅시다.
EC2에 ssh 로그인 후
$ ps aux | grep nginx
를 치자.
해결 방법
Nginx 재부팅
EC2에 ssh 로그인 후
$ nginx
합시다. 경우에 따라 sudo를 붙여야합니다. .
원인 3: EC2가 ELB에서 분리됨
상황
웹서버가 ELB의 헬스 체크에 응답할 수 없어, OutOfService가 되어 버렸을 가능성이 높습니다.
이 상황인지 확인하는 방법
IP 주소에 웹 브라우저에서 액세스해보고 화면이 정상적으로 표시되는 경우는 이 상황입니다.
해결 방법
ELB의 응답에 올바르게 응답하도록 합시다.
이번에는 응답 할 수 없다는 것이므로,
"서버 측에서 무거운 처리가 실행되고 응답이 느린"
라고 하는 경우이므로 2가지의 대응을 합니다.
무거운 과정을 죽인다.
그 처리가 소중한 경우 어떻게 해야 한다는 것은 두고
$ kill <プロセスid>
에서 처리를 중지할 수 있습니다.
상태 점검 설정 변경
AWS Management Console에서 EC2를 선택한 후,
사이드바에서 로드 밸런서를 선택합니다.
그런 다음 상태 확인 탭을 선택하고 상태 확인 편집을 누릅니다.
고급 세부사항이라는 항목을 변경합니다.
응답 시간 초과를 늘리면 응답 속도가 느려집니다.
"비정상 임계값", "정상 임계값"도 변경하여 조정하는 것도 좋을 것입니다.
이 편집은 ELB에 연결된 서버를 InService로 만드는 비상 대응이므로,
정상적으로 작동할 수 있는 상태로 서비스를 되돌리면 숫자도 되돌리십시오.
마지막으로
웹 브라우저로 액세스하면 어쩐지 알 수 있습니다.
Reference
이 문제에 관하여(Rails + Unicorn + Nginx + EC2 + ELB 구성으로 웹 사이트에 액세스 할 수없는 경우의 원인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gp333/items/70c9ed28f9fa182023e0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ ps aux | grep nginx
$ nginx
상황
웹서버가 ELB의 헬스 체크에 응답할 수 없어, OutOfService가 되어 버렸을 가능성이 높습니다.
이 상황인지 확인하는 방법
IP 주소에 웹 브라우저에서 액세스해보고 화면이 정상적으로 표시되는 경우는 이 상황입니다.
해결 방법
ELB의 응답에 올바르게 응답하도록 합시다.
이번에는 응답 할 수 없다는 것이므로,
"서버 측에서 무거운 처리가 실행되고 응답이 느린"
라고 하는 경우이므로 2가지의 대응을 합니다.
무거운 과정을 죽인다.
그 처리가 소중한 경우 어떻게 해야 한다는 것은 두고
$ kill <プロセスid>
에서 처리를 중지할 수 있습니다.
상태 점검 설정 변경
AWS Management Console에서 EC2를 선택한 후,
사이드바에서 로드 밸런서를 선택합니다.
그런 다음 상태 확인 탭을 선택하고 상태 확인 편집을 누릅니다.
고급 세부사항이라는 항목을 변경합니다.
응답 시간 초과를 늘리면 응답 속도가 느려집니다.
"비정상 임계값", "정상 임계값"도 변경하여 조정하는 것도 좋을 것입니다.
이 편집은 ELB에 연결된 서버를 InService로 만드는 비상 대응이므로,
정상적으로 작동할 수 있는 상태로 서비스를 되돌리면 숫자도 되돌리십시오.
마지막으로
웹 브라우저로 액세스하면 어쩐지 알 수 있습니다.
Reference
이 문제에 관하여(Rails + Unicorn + Nginx + EC2 + ELB 구성으로 웹 사이트에 액세스 할 수없는 경우의 원인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gp333/items/70c9ed28f9fa182023e0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Rails + Unicorn + Nginx + EC2 + ELB 구성으로 웹 사이트에 액세스 할 수없는 경우의 원인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gp333/items/70c9ed28f9fa182023e0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)