mod_proxy를 사용하여 node.js와 함께 작동하도록 Apache 구성에는 Apache를 리버스 프록시로 설정하여 요청을 Node.js 응용 프로그램에 전달하는 것이 포함됩니다. 시작하기위한 단계별 가이드는 다음과 같습니다.
Apache 및 Mod_proxy 설치 : 먼저 서버에 Apache가 설치되어 있는지 확인하십시오. 대부분의 분포에는 기본적으로 Apache가 포함됩니다. 또한 mod_proxy 모듈이 활성화되어 있는지 확인해야합니다. 데비안 기반 시스템에서는 다음과 같이 활성화 할 수 있습니다.
<code>sudo a2enmod proxy sudo a2enmod proxy_http sudo service apache2 restart</code>
Apache VirtualHost 구성 : Mod_proxy를 사용하여 Node.js 서버로 요청을 전달하는 VirtualHost를 설정하려면 Apache 구성을 수정해야합니다. 다음은 /etc/apache2/sites-available/your-site.conf
(또는 설정에 따라 동등한 파일)에 추가 할 수있는 예제 구성입니다.
<code><virtualhost> ServerName yourdomain.com ProxyPreserveHost On # Proxy to your Node.js app ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ # If you want to serve static files directly from Apache # DocumentRoot /var/www/your-site # <directory> # Options Indexes FollowSymLinks MultiViews # AllowOverride All # Require all granted # </directory> </virtualhost></code>
Apache를 다시 시작 : 구성을 추가 한 후 Apache를 다시 시작하여 변경 사항을 적용하십시오.
<code>sudo service apache2 restart</code>
ProxyPass
지시문에 지정된 포트에서 실행 중인지 확인하십시오 (예에서는 3000
). Node.js 앱이 다른 포트 또는 호스트에서 청취하도록 설정된 경우 ProxyPass
및 ProxyPassReverse
조정하십시오.이 설정은 Apache의 모든 수신 요청을 Node.js 서버로 향하게하여 Apache가 Node.js 응용 프로그램의 역 프록시 역할을 할 수 있습니다.
mod_proxy를 사용하여 node.js로 Apache를 설정할 때 몇 가지 일반적인 문제가 발생할 수 있습니다. 잠재적 솔루션과 함께 그중 일부는 다음과 같습니다.
/var/log/apache2/error.log
)를 확인하십시오. 일반적인 이유에는 mod_proxy와 충돌하는 다른 모듈이 포함됩니다. 충돌 모듈이로드되지 않도록하여이를 해결할 수 있습니다.ProxyPass
실행 중이 있는지 확인하십시오.ProxyPass
및 ProxyPassReverse
지시문이 올바르게 형식화되어 있고 Node.js 앱의 예상 URL 구조와 일치하는지 확인하십시오. 오해로 인해 잘못된 URL 처리가 발생할 수 있습니다.ProxyPreserveHost
가 On
으로 설정되고 ProxyPass
및 ProxyPassReverse
보안 연결을 처리하도록 올바르게 구성되어 있는지 확인하십시오.예, mod_proxy_balancer와 함께 mod_proxy를 사용하여 여러 node.js 인스턴스에 부하를 배포 할 수 있습니다. 구성하는 방법은 다음과 같습니다.
MOD_PROXY_BALANCER 활성화 : MOD_PROXY_BALANCER 모듈이 활성화되어 있는지 확인하십시오. 데비안 기반 시스템에서는 다음과 같이 활성화 할 수 있습니다.
<code>sudo a2enmod proxy_balancer sudo a2enmod lbmethod_byrequests sudo service apache2 restart</code>
Apache에서로드 밸런서 구성 :로드 밸런서 설정을 포함하도록 Apache VirtualHost 구성을 수정하십시오. 다음은 다른 포트에서 실행되는 두 개의 node.js 인스턴스에서로드 균형을 유지하기위한 예입니다.
<code><virtualhost> ServerName yourdomain.com ProxyPreserveHost On <proxy balancer:> BalancerMember http://localhost:3000 BalancerMember http://localhost:3001 </proxy> ProxyPass / balancer://mycluster/ ProxyPassReverse / balancer://mycluster/ </virtualhost></code>
이 구성은 mycluster
라는 밸런서를 두 개의 node.js 인스턴스로 설정합니다. 설정에 따라 균형을 유지할 수 있습니다.
Apache를 다시 시작 :로드 밸런서 구성을 설정 한 후 Apache를 다시 시작합니다.
<code>sudo service apache2 restart</code>
이 설정은 지정된 node.js 인스턴스에 걸쳐 들어오는 요청을 배포하여로드를보다 효과적으로 관리하는 데 도움이됩니다.
mod_proxy로 apache 및 node.js 설정을 보호하는 것이 중요합니다. 보안을 향상시키기 위해 수행 할 수있는 몇 가지 단계는 다음과 같습니다.
노출 된 정보를 최소화하십시오 : 서버 정보를 노출시키지 않도록 Apache의 서버 서명을 비활성화하십시오. Apache 구성에 다음을 추가하십시오.
<code>ServerSignature Off ServerTokens Prod</code>
프록시 요청 제한 : 프록시의 오용을 방지하려면 프록시 할 수있는 요청 유형을 제한 할 수 있습니다. 이것을 Apache 구성에 추가하십시오.
<code>ProxyRequests Off</code>
보안 헤더 : Apache 구성에서 보안 헤더를 구현하여 다양한 유형의 공격을 완화 할 수 있습니다. 예를 들어:
<code>Header always set X-Frame-Options "SAMEORIGIN" Header always set X-XSS-Protection "1; mode=block" Header always set X-Content-Type-Options "nosniff" Header always set Referrer-Policy "no-referrer-when-downgrade"</code>
이 단계를 수행하면 mod_proxy를 사용하여 Apache 및 Node.js 설정의 보안을 크게 향상시킬 수 있습니다.
위 내용은 mod_proxy를 사용하여 node.js와 작동하도록 Apache를 어떻게 구성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!