mod_cluster プロキシとして使用する Apache HTTP サーバーインスタンスと VPC 用 NAT インスタンスの起動


このトピックでは、mod_cluster プロキシとして使用する Apache HTTP サーバーインスタンスと Virtual Private Cloud 用 NAT インスタンスを起動するために必要な手順について説明します。

手順25.9 mod_cluster プロキシとして使用する Apache HTTP サーバーインスタンスと VPC 用 NAT インスタンスの起動

  1. このインスタンスに対してエラスティック IP を作成します。
  2. AMI を選択します。
  3. Security Group に移動し、すべてのトラフィックを許可します (必要な場合は、アクセスを制限する Red Hat Enterprise Linux の組み込みファイアウォール機能を使用)。
  4. VPC のパブリックサブネットで running を選択します。
  5. 静的な IP ( など) を選択します。
  6. 以下の内容を User Data: フィールドに指定します。
    cat > $USER_SCRIPT << "EOS"
    echo 1 > /proc/sys/net/ipv4/ip_forward
    echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
    echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter
    iptables -I INPUT 4 -s -p tcp --dport 7654 -j ACCEPT
    iptables -I INPUT 4 -p tcp --dport 80 -j ACCEPT
    iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -I FORWARD -s -j ACCEPT
    iptables -t nat -A POSTROUTING -o eth0 ! -s -j MASQUERADE
    # balancer module incompatible with mod_cluster
    sed -i -e 's/LoadModule proxy_balancer_module/#\0/' /etc/httpd/conf/httpd.conf
    cat > /etc/httpd/conf.d/mod_cluster.conf << "EOF"
    #LoadModule proxy_module modules/mod_proxy.so
    #LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    LoadModule slotmem_module modules/mod_slotmem.so
    LoadModule manager_module modules/mod_manager.so
    LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
    LoadModule advertise_module modules/mod_advertise.so
    Listen 7654
    # workaround JBPAPP-4557
    MemManagerFile /var/cache/mod_proxy/manager
    <VirtualHost *:7654>
       <Location /mod_cluster-manager>
          SetHandler mod_cluster-manager
          Order deny,allow
          Deny from all
          Allow from
       <Location />
          Order deny,allow
          Deny from all
          Allow from 10.
          Allow from
       KeepAliveTimeout 60
       MaxKeepAliveRequests 0
       ManagerBalancerName mycluster
       ServerAdvertise Off
       EnableMCPMReceive On
    echo "`hostname | sed -e 's/ip-//' -e 'y/-/./'`        `hostname`" >> /etc/hosts
    semanage port -a -t http_port_t -p tcp 7654 #add port in the apache port list for the below to work
    setsebool -P httpd_can_network_relay 1 #for mod_proxy_cluster to work
    chcon -t httpd_config_t -u system_u /etc/httpd/conf.d/mod_cluster.conf
    #### Uncomment the following line when launching a managed domain ####
    # setsebool -P httpd_can_network_connect 1
    service httpd start
  7. このインスタンスに対する Amazon EC2 クラウド送信元/送信先チェックを無効にして、ルーターとして動作できるようにします。
    1. 稼働している Apache HTTP サーバーインスタンスを右クリックし、Change Source/Dest check を選択します。
    2. Yes, Disable をクリックします。
  8. このインスタンスにエラスティック IP を割り当てます。

Apache HTTP サーバーインスタンスが正常に起動されます。