Rocky Linux에서 Nginx와 n8n을 연동하여 워크플로우 자동화 서버를 구축하는 방법을 단계별로 정리해 드리겠습니다.
Rocky Linux에서 n8n 및 Nginx 설치를 위해 필요한 기본 패키지를 설치합니다.
sudo dnf update -y
sudo dnf install -y epel-release
sudo dnf install -y nginx nodejs npm
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
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
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
Nginx를 Reverse Proxy로 설정해 n8n에 HTTPS 접속을 제공합니다.
sudo dnf install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
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
Rocky Linux의 기본 방화벽인 firewalld를 통해 포트를 열어줍니다.
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
브라우저에서 https://your-domain.com에 접속하여 n8n UI가 정상적으로 동작하는지 확인합니다.
이로써 Rocky Linux에서 Nginx + n8n 연동이 완료 되었습니다.