문제 개요
학습용으로 사용중인 오라클 클라우드 인스턴스가 사용을 안해서 자동적으로 정지됐다.
단순히 재기동만 시키면 될 줄 알았는데, 재기동 이후에도 등록해놓은 도메인에 접속을 하면 무한로딩에 걸렸다.
해결 시도 1
처음에는 단순히 nginx가 꺼져있나 보구나 싶어서, nginx 기동을 해보았지만, 문제는 여전했다. nginx단 에서 문제가 생긴게 아닌가해서 nginx 에러를 확인해보았다.
아니나 다를까 nginx에서 아래와 같은 에러를 확인할 수 있었다.
[emerg] bind() to [::]:80 failed (98: Address already in use)
80포트 바인딩에 실패했다는데, 생각할 수 있는 에러가 처음에는 apache 서버가 재기동되면서 자동적으로 80포트 할당돼서 nginx가 80포트 바인딩에 실패하는 걸로 생각했다.
sudo /etc/init.d/apache2 stop
정상적으로 아파치 서버를 정지했지만 nginx는 기동했으나 웹사이트 접근에 실패했다.
해결 시도2
nginx도 잘 돌아가고 있고, 단순하게 재기동하면서 설정했던 iptables가 초기화된게 아닌가 혹시나 생각해봤다.
iptables -I INPUT 5 -i ens3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
80포트를 열어주니 정상적으로 접근이 가능해졌다!
재기동전에 열어놨던 포트들을 다시 열어줘야할 것 같다....
문제 방지
서버의 리부팅이 발생할 때마다 일일이 포트 설정해주는 것은 정말 비효율적이다.
서버를 처음 세팅할때 netfilter-persistent
를 설치하고 설정값을 저장할 수 있도록 해준다고 하니 알아보고 설정해야겠다.