[Rails] Window에서 apache + proxy_balancer 사용하기
apache 설치
apache http home page 에서 apache server 2.2.6을 download해서 설치한다.
proxy_balancer module 활성화
apache_root/conf/httpd.conf 파일을 열어서 다음 module을 활성화시킨다.
- LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule rewrite_module modules/mod_re
Virtual Host 설정
www.aproxacs.com 으로 오는 요청은 rails가 처리하도록 하자.
port 기반으로 가상호스트를 설정하는 것은 [Rails] debian에 apache 설치 및 설정 를 참조.
apache_root/conf/httpd.conf을 열어 virtual host 설정 파일을 include한다.
- # Virtual hosts
Include conf/extra/httpd-vhosts.conf
apache_root/conf/extra/httpd-vhosts.conf를 열어 virtual host 설정을 한다.
다음은 www.aproxacs.com으로 오는 요청을 proxy_balancer를 통해 mongrel로 보내는 설정이다.
- <Proxy balancer://slugger_mongrel_cluster>
BalancerMember http://127.0.0.1:3001 - BalancerMember http://127.0.0.1:3002
- </Proxy>
<VirtualHost *:80>
ServerAdmin aproxacs@gmail.com
DocumentRoot "C:/webroot/slugger/public"
ServerName www.aproxacs.com
ServerAlias aproxacs.com
<Directory "C:/webroot/slugger/public">
options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /system/maintenance.html [L]
RewriteRule ^/$ /index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://slugger_mongrel_cluster%{REQUEST_URI} [P,QSA,L]
ErrorLog "C:/webroot/slugger/log/apache_error_log"
</VirtualHost>
mongrel을 window service로 등록하기
mongrel_service gem을 설치한다.
- gem install mongrel_service
rails application을 service로 등록한다.
- mongrel_rails service::install -N slugger8001 -c c:\webroot\slugger -p 8001 -e production
-N : service이름
-c : rails application directory
-p : port
x-sendfile 설정
- apache download 에서 xsendfile module 을 download한다.
- 압축을 풀어서 mod_xsendfile.so 을 Apache2/modules 에 복사한다.
- Visual C++ 2005 SP1 Redistributable Package 를 설치한다.(안해도 되는지는 모르겠음. readme에 하라고 나와있으니..)
- download : http://www.microsoft.com/downloads/details.aspx?FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647&DisplayLang=en
- Apache2/conf/httpd.conf 에 다음을 추가한다.
- LoadModule xsendfile_module modules/mod_xsendfile.so
-
Virtual-host 설정에 다음도 추가한다.
- XSendFile on
XSendFileAllowAbove on
- XSendFile on
x-sendfile의 설명 : http://tn123.ath.cx/mod_xsendfile/
파일이 네트웍 드라이브에 있는 경우 동작을 안하네...
Comments (0)