notes
DNS Settings
DNS 레코드·도메인 연결 설정과 전파 확인 시 주의점 메모.
1. Vercel 사용 시:
- Vercel 대시보드 접속
- 해당 프로젝트 선택
- Settings > Domains 메뉴로 이동
- Add Domain 버튼 클릭
- 도메인 입력 후 Add
- Vercel이 제공하는 네임서버 정보를 도메인 제공업체의 DNS 설정에 등록
2. AWS 사용 시:
- Route 53 서비스로 이동
- Hosted zones 생성
- 도메인 이름 입력
- 레코드 생성:
- A 레코드: IPv4 주소 연결
- CNAME: 서브도메인 연결
- 도메인 제공업체에서 AWS 네임서버 정보 등록
3. Netlify 사용 시:
A 레코드
type: A name: @ value: [서버 IP 주소]
www 서브도메인용 CNAME
type: CNAME name: www value: [도메인 또는 서버 주소]
/etc/nginx/sites-available/your-domain.conf
server {
listen 80;
server_name [yourdomain.com](http://yourdomain.com/) [www.yourdomain.com](http://www.yourdomain.com/);
location / {
proxy_pass <http://localhost:3000>; # 실제 애플리케이션 포트
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
DNS 전파 확인
dig yourdomain.com nslookup yourdomain.com
SSL 인증서 확인
curl -I https://yourdomain.com
# 1. 방화벽 설정 확인
sudo ufw status
sudo ufw allow 80
sudo ufw allow 443
# 2. Nginx 상태 확인
sudo nginx -t
sudo systemctl status nginx
# 3. 도메인 연결 테스트
ping yourdomain.com
curl -v yourdomain.com
docker DNS settings
# docker-compose.yml
version: '3'
services:
nginx:
image: nginx:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./certbot/conf:/etc/letsencrypt
- ./certbot/www:/var/www/certbot
networks:
- app-network
web:
build: .
ports:
- "3000:3000"
networks:
- app-network
networks:
app-network:
driver: bridge
nginx
nginx.conf
http {
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
location / {
proxy_pass <http://web:3000>; # Docker 서비스 이름 사용
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
}
# docker-compose.yml에 certbot 서비스 추가
services:
certbot:
image: certbot/certbot
volumes:
- ./certbot/conf:/etc/letsencrypt
- ./certbot/www:/var/www/certbot
depends_on:
- nginx
#!/bin/bash
domains=(yourdomain.com www.yourdomain.com)
email="your-email@example.com" # SSL 인증서 관련 이메일
# 인증서 발급
docker-compose run --rm certbot certonly \
--webroot -w /var/www/certbot \
--email $email \
--agree-tos --no-eff-email \
-d ${domains[0]} -d ${domains[1]}
# 네트워크 생성
docker network create app-network
# 컨테이너 실행
docker-compose up -d
# 인증서 갱신
docker-compose run --rm certbot renew
0 12 * * * root docker-compose -f /path/to/docker-compose.yml run --rm certbot renew >> /var/log/certbot-renew.log