
N8N 서버를 구축한 후 도메인을 연결하고 Nginx를 설정하면, 보다 직관적이고 안전하게 워크플로우를 관리할 수 있습니다.
이 가이드는 Cloudflare에서 구매한 도메인과 SSL 인증서를 활용하여 N8N 서버를 보호하고, 인증창을 추가하여 접근을 제한하는 방법을 설명합니다.
1. 도메인 연결의 필요성
도메인을 연결하면 다음과 같은 이점이 있습니다:
- 사용자 친화적 URL: 복잡한 IP 주소 대신 기억하기 쉬운 도메인을 사용할 수 있습니다. 예를 들어, 192.168.1.1대신 workflow.yourdomain.com을 사용하는 것이 더 직관적입니다. 이렇게 하면 사용자는 더 쉽게 서버에 접속할 수 있습니다.
- 보안 강화: HTTPS를 적용하여 데이터를 안전하게 보호합니다. 예를 들어, 사용자가 로그인 정보를 전송하거나 민감한 데이터를 다루는 경우 암호화된 연결이 필수적입니다. 이를 통해 데이터 도청 위험을 줄일 수 있습니다.
- 전문성 부각: 사용자와 고객에게 신뢰를 줄 수 있는 프로페셔널한 서버 환경을 제공합니다. 예를 들어, https://secure.mycompany.com과 같은 URL은 회사의 신뢰도를 높이는 데 기여합니다.
2. SSL 인증서 생성
HTTPS를 적용하려면 Cloudflare에서 제공하는 SSL 인증서를 사용합니다. 아래 단계를 따라 설정하세요:
** 도메인 구매와 설정을 자세히 알아보려면 클릭하세요 **
- Cloudflare에서 “SSL/TLS” 설정으로 이동하여 “Flexible” 또는 “Full” 모드를 활성화합니다.
- Cloudflare의 Origin SSL 인증서(원본서버)를 다운로드합니다.
- 인증서를 Nginx 서버에 업로드하고 아래 경로에 저장합니다:
- 인증서: /etc/nginx/ssl/cloudflare.pem
- 키 파일: /etc/nginx/ssl/cloudflare-key.pem
- Nginx 설정 파일에서 올바른 경로를 지정했는지 확인합니다.


“생성” 버튼을 클릭하면 Cloudflare가 다음 두 가지를 제공합니다:
- 원본 인증서(Certificate): 서버에서 사용하는 인증서입니다.
- 개인 키(Private Key): 이 키는 절대 유출되지 않도록 해야 합니다. 인증서 파일과 함께 서버에 설치해야 합니다.

인증서를 생성한 후 다음 단계를 꼭 수행하세요:
- 인증서와 개인 키를 다운로드하여 안전한 위치에 저장하세요.
- 개인 키는 특히 보안에 신경 써야 하며, 외부에 노출되면 안 됩니다.
- 인증서를 잃어버리면 다시 생성해야 하므로 백업해두세요.
3. Nginx 설치 및 설정 준비
3.1 Nginx 설치
Nginx는 웹 서버 역할을 하며, HTTP 요청을 처리하고 HTTPS를 지원하여 보안을 강화합니다. 먼저 서버에 Nginx를 설치해야 합니다. 아래 명령어를 실행하세요:
sudo apt update
sudo apt install nginx -y

위 이미지처럼 나오면 정상입니다.
설치 후, Nginx가 정상적으로 실행 중인지 확인합니다:
sudo systemctl status nginx

Tip: 상태가 “active (running)”으로 표시되면 설치가 완료된 것입니다.
Q를 치면 수동으로 작업이 완료됩니다.
Troubleshooting: 설치 중 문제가 발생할 경우 아래를 확인하세요:
- 문제: “패키지 업데이트 실패” 오류.
- 해결 방법:
sudo apt update명령어를 실행한 후 다시 시도합니다.- 문제: “nginx.service not found” 오류.
- 해결 방법: Ubuntu 버전이 지원하는지 확인하거나 패키지 목록을 최신 상태로 유지합니다.
- 문제: 방화벽이 Nginx를 차단 중.
- 해결 방법:
sudo ufw allow 'Nginx Full'명령어를 실행하여 포트를 허용합니다.- 문제: 포트 충돌 발생.
- 해결 방법: 다른 프로세스가 80번 또는 443번 포트를 사용하는지 확인하려면
sudo netstat -tuln | grep ':80\|:443'명령어를 사용하세요. 충돌 프로세스를 중지하거나 Nginx 설정에서 포트를 변경합니다.
4. SSL 인증서 저장
4.1 SSL 디렉터리 생성
- 아래 명령어를 사용하여 SSL 디렉터리를 생성합니다.
sudo mkdir -p /etc/nginx/ssl4.2 Origin Certificate 저장
- 다음 명령어를 입력합니다.
sudo nano /etc/nginx/ssl/cloudflare.pem- Cloudflare에서 제공한 Origin Certificate 내용을 복사하여 파일에 붙여넣고 저장합니다.
- 파일 저장 방법 : Ctrl+O 누르고 Enter 누름 마지막으로 Ctrl+X 누르면 종료됩니다.


4.3 Private Key 저장
- 다음 명령어를 입력합니다.
sudo nano /etc/nginx/ssl/cloudflare-key.pem

- Cloudflare에서 제공한 Private Key 내용을 복사하여 파일에 붙여넣고 저장합니다.
SSL 인증서가 성공적으로 적용되었는지 테스트하려면 아래 명령어를 실행하세요.
sudo nginx -t
sudo systemctl reload nginx

출력 내용 분석
- nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
- NGINX의 메인 설정 파일(/etc/nginx/nginx.conf)의 문법에 문제가 없다는 뜻입니다.
- 설정 파일 내의 구문이 올바르다는 것을 확인한 결과입니다.
- nginx: configuration file /etc/nginx/nginx.conf test is successful
- 설정 파일의 구문 테스트가 성공적으로 완료되었음을 의미합니다.
- 즉, 설정 파일을 실제로 적용해도 에러 없이 작동할 준비가 되었다는 뜻입니다.

이 명령어로 NGINX를 다시 로드하면 변경된 설정이 적용됩니다.
** 클라우페어에서 도메인 구매후 설정하기**
5. Nginx 설정 파일 구성
5.1 기본 설정 파일 위치
Nginx 설정 파일은 /etc/nginx/sites-available 디렉토리에 있습니다.
새 설정 파일을 생성하세요:
sudo nano /etc/nginx/sites-available/n8n
5.2 설정 파일 내용 작성
아래 내용을 복사하여 붙여넣으세요.
yourdomain.com을 사용 중인 본인 도메인으로 변경하세요.
# HTTP -> HTTPS 리다이렉트
server {
listen 80;
server_name yourdomain.com; # 본인 도메인으로 변경
# HTTP 요청을 HTTPS로 리다이렉트
return 301 https://$host$request_uri;
}
# HTTPS 설정 (Cloudflare SSL 사용)
server {
listen 443 ssl;
server_name yourdomain.com; # 본인 도메인으로 변경
# Cloudflare의 SSL 인증서 사용
ssl_certificate /etc/nginx/ssl/cloudflare.pem; # SSL 인증서 경로
ssl_certificate_key /etc/nginx/ssl/cloudflare-key.pem; # 인증서 키 경로
# 추가 SSL 설정
ssl_protocols TLSv1.2 TLSv1.3; # Cloudflare가 지원하는 프로토콜
ssl_prefer_server_ciphers off; # 클라이언트 암호화를 우선
ssl_session_cache shared:SSL:10m; # 세션 캐시 설정
# HTTP Basic Authentication 추가
auth_basic "Restricted Access"; # 인증창에 표시될 메시지
auth_basic_user_file /etc/nginx/.htpasswd; # 인증 파일 경로
# n8n에 대한 프록시 설정
location / {
proxy_pass http://localhost:5678; # N8N 서버의 로컬 주소로 요청 전달
proxy_set_header Host $host; # 원래 요청의 호스트 헤더 전달
proxy_set_header X-Real-IP $remote_addr; # 클라이언트의 실제 IP 전달
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 프록시 체인을 통해 클라이언트 IP 전달
proxy_set_header X-Forwarded-Proto $scheme; # 요청의 프로토콜(HTTP/HTTPS) 전달
proxy_http_version 1.1; # HTTP 버전 설정
proxy_set_header Upgrade $http_upgrade; # WebSocket 연결 지원
proxy_set_header Connection "upgrade"; # WebSocket 연결 업그레이드
chunked_transfer_encoding off; # 청크 전송 비활성화
proxy_buffering off; # 프록시 버퍼링 비활성화 (실시간 응답)
proxy_cache off; # 프록시 캐싱 비활성화
}
}

Ctrl+O 누른뒤 Enter 를 누르면 파일이 저장됩니다.
Ctrl+X 를 누르면 종료됩니다.
5.3 Nginx를 통한 포트 관리 원리
- Nginx를 설정하면, 외부에서 n8n에 접근할 때 Nginx가 대신 요청을 처리하고 n8n Docker 컨테이너(내부 포트 5678)로 전달합니다.
- 외부 사용자는 Nginx가 열어둔 포트(보통 80번과 443번)를 통해서만 n8n에 접근하게 됩니다.
- 따라서, Google Cloud의 방화벽에서 포트 5678을 닫아도 n8n은 정상 작동합니다.
즉 지난번 방화벽에서 생성한 포트5678를 삭제합니다.
5.4 포트 5678 삭제 후의 보안 이점
포트 5678을 닫으면:
- 모든 요청은 Nginx를 통해 처리되므로 HTTPS를 적용하여 보안을 추가로 확보할 수 있습니다.
- 외부에서 n8n의 내부 포트로 직접 접근할 수 없으므로 보안이 강화됩니다.
5.5 설정 활성화
설정 파일을 활성화하려면 다음 명령어를 입력하세요:
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
기존 기본 설정을 비활성화하려면 다음을 실행하세요:
sudo unlink /etc/nginx/sites-enabled/default
6. HTTP Basic Authentication 설정
웹사이트에 인증창을 추가하여 허가된 사용자만 접근할 수 있도록 설정하려면 아래 단계를 따르세요:
- .htpasswd명령어를 사용하여 인증 파일을 생성합니다.
sudo apt-get install apache2-utils # htpasswd 명령어 설치
sudo htpasswd -c /etc/nginx/.htpasswd 사용자이름(임의대로 만듭니다.)- 위 명령어는 사용자이름이라는 사용자 계정을 생성하며, 비밀번호를 입력하라는 메시지가 나타납니다.
- 이후 인증 파일은 /etc/nginx/.htpasswd에 저장됩니다.
- Nginx 설정에 인증 적용: 위 설정 파일에 이미 auth_basic과 auth_basic_user_file항목이 포함되어 있습니다. 이를 유지하면 인증이 활성화됩니다.
- Nginx 재시작: sudo systemctl reload nginx
이제 인증창이 활성화되었으며, 여러 사용자와 함께 .htpasswd파일을 효과적으로 관리할 수 있습니다.
7. 정상 작동 확인
웹 브라우저에서 https://본인도메인 을 입력하면 인증창이 표시되고, 로그인 후 N8N 서버가 정상적으로 작동해야 합니다.

문제 해결: Nginx 로그를 확인하려면 아래 명령어를 사용하세요:
sudo tail -f /var/log/nginx/error.log
결론
이제 도메인이 연결되고 SSL이 적용된 안전한 N8N 서버를 사용할 준비가 완료되었습니다.
인증창을 추가하여 허가된 사용자만 접근할 수 있도록 보호했습니다.
Nginx는 부하 분산 및 캐싱 설정을 통해 서버의 확장성과 성능을 최적화할 수 있습니다. 예를 들어, 여러 서버로 트래픽을 분산하거나 정적 콘텐츠를 캐싱하여 응답 시간을 단축할 수 있습니다.
또한, Cloudflare의 보안 기능(예: DDoS 방어 및 WAF)을 활용하면 서버를 외부 위협으로부터 안전하게 보호할 수 있습니다.
이러한 설정을 통해 더 안전하고 신뢰할 수 있는 환경을 구축할 수 있습니다. 추가로 서버 확장과 보안 강화를 위해 Nginx와 Cloudflare의 고급 기능을 활용해 보세요.
N8N 단계별 설치 가이드
N8N 설치하기 1단계 : 클라우드 서버 설치 다시보기






