Rocky Linux에서 Nginx와 n8n을 연동하여 워크플로우 자동화 서버를 구축하는 방법을 단계별로 정리해 드리겠습니다.
1. 필수 패키지 설치
Rocky Linux에서 n8n 및 Nginx 설치를 위해 필요한 기본 패키지를 설치합니다.
sudo dnf update -y
sudo dnf install -y epel-release
sudo dnf install -y nginx nodejs npm
2. n8n 설치
n8n은 Node.js 기반이므로 npm을 이용해 설치합니다.
# 글로벌 설치
sudo npm install -g n8n
# 시스템 유저 생성 (보안 강화를 위해)
sudo useradd -r -m -d /var/lib/n8n -s /sbin/nologin n8n
# 권한 설정
sudo chown -R n8n:n8n /var/lib/n8n
3. n8n 환경 변수 설정
n8n을 서비스로 실행할 때 필요한 환경 변수를 설정합니다.
환경 변수 파일 생성
sudo nano /etc/n8n.env
내용 추가 예시:
# 기본 URL 설정
N8N_HOST=127.0.0.1
N8N_PORT=5678
# 데이터 저장 디렉토리
N8N_USER_FOLDER=/var/lib/n8n/.n8n
# HTTPS 사용 시 설정
WEBHOOK_TUNNEL_URL=https://your-domain.com
# 기타 설정
EXECUTIONS_MODE=queue
4. n8n 서비스 파일 생성
systemd를 사용해 n8n을 서비스로 실행합니다.
sudo nano /etc/systemd/system/n8n.service
내용 추가:
[Unit]
Description=n8n service
After=network.target
[Service]
Type=simple
User=n8n
Group=n8n
EnvironmentFile=/etc/n8n.env
ExecStart=/usr/bin/n8n
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
서비스 활성화 및 시작
sudo systemctl daemon-reload
sudo systemctl enable n8n
sudo systemctl start n8n
sudo systemctl status n8n
5. Nginx 설정
Nginx를 Reverse Proxy로 설정해 n8n에 HTTPS 접속을 제공합니다.
SSL 인증서 설치 (Let’s Encrypt 예시)
sudo dnf install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
Nginx 설정 파일 작성
sudo nano /etc/nginx/conf.d/n8n.conf
(기존 작성된 파일이 있다면 해당 파일에 추가를 하는 것이 좋습니다.)
설정 내용:
server {
listen 80;
server_name your-domain.com;
# HTTPS로 리다이렉트
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name your-domain.com;
# SSL 인증서
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
# n8n Reverse Proxy
location / {
proxy_pass http://127.0.0.1:5678;
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;
}
}
Nginx 설정 테스트 및 적용
sudo nginx -t
sudo systemctl restart nginx
6. 방화벽 설정
Rocky Linux의 기본 방화벽인 firewalld를 통해 포트를 열어줍니다.
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
7. 설정 확인
브라우저에서 https://your-domain.com에 접속하여 n8n UI가 정상적으로 동작하는지 확인합니다.
이로써 Rocky Linux에서 Nginx + n8n 연동이 완료 되었습니다.
반응형