[apache] 同時使用 apache 與 nodejs,反向代理 nodejs

這幾天有一些服務後端用到 nodejs,但主要的網頁服務還是 apache 來處理,因此想說是否可以同時運行 nodejs 與 apache。


 

其實如果可以的話,使用 nginx 來做代理伺服器會更好(比 apache 處理的效能好,比較不會這麼限制 nodejs 速度)

由於我機器上面已經裝有LAMP的環境,並且運行部分服務,因此先使用 apache 來做代理伺服器堪用一下。

  1. 開啟 mod_proxy 及 mod_proxy_http
    sudo a2enmod proxy
    sudo a2enmod proxy_http
  2. 重新啟動 apache
    sudo service apache2 restart
  3. 編輯 /etc/apache2/sites-enabled/000-default.conf,nodejs 預設 port 為 3000

    <VirtualHost *:80>

    # reverse proxy
    <Proxy *>

    Order deny,allow
    Allow from all

    </Proxy>
    <Location />

    ProxyPass http://localhost:3000/
    ProxyPassReverse http://localhost:3000/

    </Location>

    </VirtualHost>

  4. 重新載入設定
    sudo service apache2 reload

這樣就可以針對特定 apache  virtualhost 做 nodejs 的服務了!

Leave a Reply