トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Linux:CentOS6でmod_proxyが動かない のバックアップ(No.1)


Linux:CentOS6でmod_proxyが動かない

かなりはまりましたw

状況としては以下の通り

まず、mod_proxy_balancerの設定は以下の通り。

ProxyPass /node balancer://mycluster
ProxyPassReverse /node balancer://mycluster
<Proxy balancer://mycluster>
  BalancerMember http://192.168.253.128:8080 timeout=30 retry=3
</Proxy>
  • 上述設定で/nodeにアクセスした場合、ユーザ側には503が返却される。
  • 転送先のログを確認しても、mod_proxy_balancerからの転送を受け付けれていない
  • 転送先(http://192.168.253.128:8080/node)に直接アクセスした場合、正常に返却される。
  • access_logには以下の出力有
    192.168.253.1 - - [17/Jun/2013:11:33:31 +0900] "GET /node HTTP/1.1" 503 404 "-" 
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit?/537.36 (KHTML, like Gecko) Chro me/27.0.1453.110 Safari/537.36"
  • error_logには以下の出力有
    [Mon Jun 17 11:33:11 2013] [error] (13)Permission denied: proxy: HTTP: attempt t
    o connect to 192.168.253.128:8080 (192.168.253.128) failed
    [Mon Jun 17 11:33:11 2013] [error] ap_proxy_connect_backend disabling worker for
    (192.168.253.128)

原因

原因はSELinuxでした。

CentOSのインストール時にSELinuxを無効にしておけば発生していなかった問題ですが、無効にせずに使っていると必ずはまりそうですねw

対処としては、上述リンクの記載通り以下のコマンドを発行するか、SELinuxそのものを無効にする、ということになります。

  • httpdのプロセスが外部にアクセス可能とするSELinux設定のみ追加
    /usr/sbin/setsebool -P httpd_can_network_connect 1
  • SELinuxそのものを無効とする
    /etc/sysconfig/selinuxの該当行を編集
    SELINUX=disabled

ふー、はまったw