[Apache 2.2] Facebook Canvas 에서 서비스하기 위한 Play 2의 9000포트와 Apache 2.2 연동(SSL 및 프록시 사용)

 이번에 페이스북 캔버스를 사용하는 In-App 을 만드려고 하는데, 페북은 In-App 정책이 기본이 SSL이다. 따라서 먼저 Apache 에 SSL을 설정해줘야 한다.


http://blog.hibrainapps.net/m/post/140

위 kangchoro님의 포스팅을 쭉 따라하면 잘된다. 중요한건 Apache 설치시 with openSSL을 설치해야 한다는 것.


 다만 귀찮으면 그냥 기업용 SSL 구입해서 설치하는게 좋을듯. 나도 무수히 에러가 나서 원 너무 귀찮았다.. apache 실행시 오류는 (특히 윈도우에서) 단순히 서비스에서 시작하지 말고 apache/bin/httpd.exe 를 콘솔에서 직접 실행해서 그 오류메시지를 보자. 윈 2013 서버 R2 가 문제인지는 몰라도 이벤트 로그에 잘 남지가 않는다..

 Play framework 기반 앱을 배포시에 dist 해서 target/universal 내에 zip파일을 올리고 압축을 푸는 식으로 작업을 한다. 중요한 것은 포트가 9000포트라는 것. 뭐 설정을 한다면 좋긴 하지만, 내경우는 일단 대부분의 기존 서비스가 Apache HTTP 에 물려있으니 플레이를 80으로 쓰기는 힘든 상황이다. 게다가 8080으로 mod_jk 로 프록시 되어 있으니.. 즉 특정 주소만 9000으로 연결해야 한다.

SSL을 설치완료 했다는 가정하에, 443 포트가 SSL 포트라면 프록시 설정까지 해줘야 한다.

apache/conf/extra/​httpd-vhosts.conf


<VirtualHost *:443> 

ServerName *.matthewlab.com

ServerAlias fbvol.matthewlab.com

ProxyPreserveHost On

  

  ProxyPass / http://127.0.0.1:9000/

  ProxyPassReverse / http://127.0.0.1:9000/

  

ServerAdmin [email protected]

ErrorLog logs/fbvol.matthewlab.com-error.log

CustomLog logs/fbvol.matthewlab.com-access.log common

SSLEngine on

   SSLProtocol all -SSLv2

   SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM

   SSLCertificateFile c:/apache/conf/ssl/ssl.crt

   SSLCertificateKeyFile c:/apache/conf/ssl/ssl.key

   SSLCertificateChainFile c:/apache/conf/ssl/sub.class1.server.ca.pem

   CustomLog c:/apache/logs/ssl_request_log \

      “%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”

</VirtualHost>

 

대강 이런식으로 처리하면 꽤나 잘 돌아간다. 생각보다 간단한 처리에 놀라울 다름…