1. 개요
NCP 서버에 접속해 배포를 마치고, 포트포워딩을 진행하는 과정에서 nginx를 설치하다 아래와 같은 오류가 발생했다. A high performance web server and a reverse proxy server
를 검색해도 에러 종류가 여러 가지라 에러 로그를 필수적으로 확인해야 했다. 🥲
> sudo apt install nginx
2. 원인 파악
에러 로그를 확인하기 위해 error.log
파일의 위치를 추적했다. 로그 파일을 읽어 보니 IPv6을 지원하지 않는 우분투 서버에서 IPv6 address인 [::]:80
사용을 시도하고 있어서 발생한 에러였다. 😱 설치 직전부터 이러는 이유는 nginx 설치 시 기본적으로 작성되는 /etc/nginx/sites-available/default
파일 내용 때문이다.
> find / -name error.log
/var/log/nginx/error.log
> tail -f /var/log/nginx/error.log
soket() [::]:80 failed (97: Address family not supported by protocol)
참고로 위에서 사용한 명령어들의 의미는 아래와 같다. 👍
# find: 파일 시스템에서 파일을 찾기 위함
# /: 검색을 시작할 디렉토리 → 루트 디렉토리(/)에서 검색 시작하겠다는 의미
# -name: 찾고자 하는 파일 이름 지정
# error.log: 찾고자 하는 파일 이름
# tail: 파일의 마지막 몇 줄 출력
# -f: "follow"의 약자 → 파일이 업데이트될 때마다 새로운 내용 자동으로 보여 줌
# /var/log/nginx/error.log: 모니터링할 파일 경로
3. 문제 해결
1. nano 편집기
nano 편집기를 사용해 문제의 원인이 된 파일을 열어 보면 여러 줄의 주석과 주석이 되어 있지 않은 기본 설정 내용들이 담겨 있을 텐데 몇 줄만 살짝 내려 보자.
> nano /etc/nginx/sites-available/default
2. 아래 내용 주석 처리
아래 내용을 주석 처리(#) 하면 해결된다. 문제의 원인이 되었던 게 바로 요 녀석 한 줄이다....... 🧎
listen [::]:80 default_server;
3. 다시 설치
nginx를 다시 설치하면 정상적으로 install이 완료되는 것을 확인할 수 있다.
> sudo apt install nginx