n8n 서버 구축을 위한 Apache 리버스 프록시 설정

워크플로우 자동화 도구인 n8n을 외부에서 접속할 수 있게 서버를 꾸미려면 Apache에 설치해야하는데요. 접속을 localhost 나 127.0.0.1을 사용하지 않고 서버ip나 또는 도메인과 연결하기 위해서는 n8n에서 설정을 할수도있지만 간단히 아파치 리버스 프록시을 사용하면 편리합니다. ssl 보안 https 접속도 쉬운데요 이방법에 대해서 알아봅니다

왜 리버스 프록시를 사용해야 할까요?

리버스 프록시를 사용하면 다음과 같은 이점이 있습니다:

  1. 보안 강화: 직접적인 접근을 차단하여 애플리케이션을 보호합니다.
  2. SSL 종료: HTTPS 트래픽을 처리하고 내부 서비스로 HTTP 요청을 전달할 수 있습니다.
  3. 로드 밸런싱: 여러 서버에 트래픽을 분산할 수 있습니다.
  4. 캐싱: 정적 콘텐츠를 캐시하여 성능을 향상시킬 수 있습니다.

그럼 이제 실제로 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이 가능합니다.

Certbot SSL인증서 만들기 5단계