본문 바로가기
Q&A2025년 3월 5일1분 읽기

서버 마이그레이션 시 다운타임 최소화

임
임하늘
조회 799댓글 3

서버 마이그레이션 시 다운타임 최소화 관련 문제입니다.

서버에서 아래 에러가 발생하고 있습니다:

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)

Nginx를 재시작하려는데 포트가 이미 사용 중이라고 나옵니다. systemctl restart nginx도 안 됩니다.

댓글 3

김김영삼1년 전

포트 80/443을 점유하고 있는 프로세스를 찾아서 종료해야 합니다:

# 1. 포트 사용 중인 프로세스 확인
sudo lsof -i :80
sudo lsof -i :443

# 또는
sudo ss -tlnp | grep ':80\|:443'

# 2. 좀비 nginx 프로세스 정리
sudo killall nginx

# 3. 그래도 안 되면 PID로 직접 종료
sudo fuser -k 80/tcp
sudo fuser -k 443/tcp

# 4. Nginx 재시작
sudo systemctl start nginx
sudo systemctl status nginx

보통 이전 Nginx 프로세스가 비정상 종료되어 좀비로 남아있는 경우입니다. killall 후 재시작하면 해결됩니다.

임임하늘(guest)1년 전
DB를 pg_dump로 이전하면 데이터 손실이 있을 수 있나요?
김김영삼1년 전

pg_dump 시점 이후의 데이터는 빠집니다. 방법:

  1. 논리 복제(Logical Replication) — 실시간 동기화 후 전환 (다운타임 거의 0)
  2. 점검 시간 확보 — 잠시 쓰기 중단 → pg_dump → 복원 → 전환

논리 복제가 가장 이상적이지만 설정이 복잡합니다. 소규모라면 새벽에 10분 점검으로 충분합니다.

Ctrl+Enter로 등록