워크플로우 자동화 도구인 n8n을 외부에서 접속할 수 있게 서버를 꾸미려면 Apache에 설치해야하는데요. 접속을 localhost 나 127.0.0.1을 사용하지 않고 서버ip나 또는 도메인과 연결하기 위해서는 n8n에서 설정을 할수도있지만 간단히 아파치 리버스 프록시을 사용하면 편리합니다. ssl 보안 https 접속도 쉬운데요 이방법에 대해서 알아봅니다
목차
왜 리버스 프록시를 사용해야 할까요?
리버스 프록시를 사용하면 다음과 같은 이점이 있습니다:
- 보안 강화: 직접적인 접근을 차단하여 애플리케이션을 보호합니다.
- SSL 종료: HTTPS 트래픽을 처리하고 내부 서비스로 HTTP 요청을 전달할 수 있습니다.
- 로드 밸런싱: 여러 서버에 트래픽을 분산할 수 있습니다.
- 캐싱: 정적 콘텐츠를 캐시하여 성능을 향상시킬 수 있습니다.
그럼 이제 실제로 Apache를 사용하여 n8n의 리버스 프록시를 설정하는 방법을 알아보겠습니다.
Apache 설정하기
1. 필요한 Apache 모듈 활성화
먼저, 리버스 프록시에 필요한 Apache 모듈을 활성화합니다.
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_wstunnel
2. 가상 호스트 설정
Apache의 가상 호스트 설정 파일을 만들거나 수정합니다.
sudo nano /etc/apache2/sites-available/n8n.conf
파일에 다음 내용을 추가합니다:
<VirtualHost *:80>
ServerName your-domain.com
ProxyPreserveHost On
ProxyPass / http://localhost:5678/
ProxyPassReverse / http://localhost:5678/
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://localhost:5678/$1" [P,L]
</VirtualHost>
여기서 your-domain.com
은 실제 도메인 이름으로, 5678
은 n8n이 실행되는 포트 번호로 변경해주세요.
3. 설정 활성화 및 Apache 재시작
sudo a2ensite n8n.conf
sudo systemctl restart apache2
위의 설정으로 n8n을 apache에 구축해 여러개의 n8n서버를 쉽게 구축할 수 있습니다. 나아가 docker를 사용하면 같은 서버를 여러개 설치할수있는데요. 이때도 아파치에서 virtualhost를 사용해 여러개 서버를 한꺼번에 접속할 수 있습니다. https접속은 certbot으로 무료 ssl이 가능합니다.