..갑자기 서버가 먹통되었을 때(aka 백엔드 멘탈 나감)
전일 오후 3시부터 개발중인 서버가 먹통되었다는 연락을 받았다.(두둥)
당장 급한건 아니었기에 오늘 출근해서 해결을 시도했는데,
ㅇ ㅏ.. ? 아무리 시도해도 해결이 안되는거.
<여기서부터 여정>
1. 서버 로그를 봤는데 전일 오후 3시에 neo4j 에러가 하나 찍힌 후 이후에는 아무런 기록이 없었음. 이거부터 좀 매우 수상하긴 했음.
2. nginx때문에 고생을 많이 해서 그쪽 문젠가? 싶어
/etc/nginx/nginx.conf
nginx 설정 수정해도 아무 변화가 없어서 결국 완전 삭제 -> 그럼에도 spring 서버 로그에 지속적으로 아무것도 찍혀 나오는게 없었음
3. 확인해보니 https 도메인 뿐만 아니라 publicIP 자체로도 접근이 완전히 차단되어있었음(브라우저에서 80, 8080, 22 등등 모든 포트 접속 안됨) '...어라?' 싶었음
4. 전일 오후 3시 이후로 로그가 없는것도 그렇고, 그때부터 서버 자체로 요청이 전혀 들어오지 않고 있다고 판단
5. 네트워크 문제가 당연히 의심되어 NCP ACG rule 점검했으나 8080 포함해서 필요한 포트는 전부 열려있었음
6. 이상해서 서버 내부 포트가 잠겼나 싶어 확인함
netstat -anp | grep :8080
결과는 멀쩡하다고 출력 (tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN)
7. 흠?????? 싶어 방화벽 점검했는데
sudo iptables -L -n
sudo ufw status
아무런 트래픽 차단이 없었음....
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
그러나 혹시 모르니 수동으로 8080 열어줌
sudo ufw allow 8080/tcp
여전히 무반ㅋ응ㅋ
8. 슬슬 멘탈이 터져나감. 챗 지피티의 도움을 좀 받음. 또다른 방화벽이 있다는걸 처음 알았다.
sudo systemctl status firewalld
- 해당 방화벽 영구적으로 풀어주고 설정 리로드하니까 다시 서버가 살아났다...............
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
* https를 사용하는 경우 8번의 방법으로 443포트도 열어줘야됨
의문점은... 방화벽 관련해서는 기본적으로 ufw로 설정하지 않음?
저 또다른 방화벽인 firewalld는 이번에 처음 설정해봤음...
난 전일 서버에 전혀 접근하지 않았는데 어째서 ? 갑자기 ???????????? 해당 방화벽이 활성화되었는지는 .... 정말 잘 모르겠음