せたがやえんじにあぶろぐ

Ruby | Rails | iPhone | Web

wwwなしからwwwへの転送設定 [Apache x Unicorn]

主流はnginx x unicornなんだろうけど、既存のサービスなんかはApache使ってることが多いのかなぁ。

apacheでwwwなしから、www付きの転送設定はたくさん使うことがあるのでテンプレ保存しておこうかな。

<Proxy balancer://unicorn_cluster_hoge/>
  BalancerMember http://127.0.0.1:8080 route=0 loadfactor=4 keepalive=On redirect=1
</Proxy>

<VirtualHost www.hoge.jp:80>

  DocumentRoot /your/document/root/

  ServerName www.hoge.jp
  RewriteEngine on
  
  // サブドメインが'test'以外の時
  RewriteCond %{HTTP_HOST} !^test\.hoge\.jp 
  
  // サブドメインが既に'www'以外の時
  RewriteCond %{HTTP_HOST} !^www\.hoge\.jp
  
  // www.hoge.jp/以降のURLを引っさげて301でwwwへ転送
  RewriteRule ^(.*)$ http://www.hoge.jp$1 [R=301,L] 

  RewriteRule ^/(.*)$ balancer://unicorn_cluster_hoge%{REQUEST_URI} [P,QSA,L]
</VirtualHost>

#---- SSL start----
<VirtualHost www.hoge.jp:443>

  DocumentRoot /your/document/root/

  ServerName www.hoge.jp
  RewriteEngine on
  
  // サブドメインが'test'以外の時
  RewriteCond %{HTTP_HOST} !^test\.hoge\.jp 
  
  // サブドメインが既に'www'以外の時
  RewriteCond %{HTTP_HOST} !^www\.hoge\.jp
  
  // www.hoge.jp/以降のURLを引っさげて301でwwwへ転送
  RewriteRule ^(.*)$ http://www.hoge.jp$1 [R=301,L] 

  RewriteRule ^/(.*)$ balancer://unicorn_cluster_hoge%{REQUEST_URI} [P,QSA,L]

  RequestHeader set X_FORWARDED_PROTO 'https'


  SSLEngine on
  SSLCertificateFile /etc/httpd/conf/ssl/www.hoge.jp.crt
  SSLCertificateKeyFile /etc/httpd/conf/ssl/www.hoge.jp.key
  SSLCertificateChainFile /etc/httpd/conf/ssl/www.hoge.jp.ca
  <Directory "/usr/local/apache2/cgi-bin">
    SSLOptions +StdEnvVars
  </Directory>
  BrowserMatch ".*MSIE.*" \
  nokeepalive ssl-unclean-shutdown \
  downgrade-1.0 force-response-1.0

  CustomLog /var/log/httpd-ssl_request.log \
  "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>