Apache環境でExpressを80portで動作させる

通常だとExpressは3000portを使ってるので
exsample.com:3000みたいな形のアクセスになってしまいます。
それをApacheの設定でポート番号を省いたexsample.comでアクセスできるようにします。

まず/etc/httpd/conf/http.conf 内に

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

上記の二行が有効になっているかを確認します。

次にバーチャルホストを設定します。
Expressの場合、publicが公開フォルダになるので
/var/www/proj/publicをドキュメントルートに設定。
またProxyPass/ProxyPassReverseの設定でリクエストをlocalhost:3000へ向けます。

<VirtualHost *:80>
	ServerName example.com
	DocumentRoot "/var/www/project/public"

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

	ErrorLog /var/log/httpd/error.log
</VirtualHost>

あとはapacheを再起動すれば設定完了です。

service httpd restart