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

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


  • 追加された行はこの色です。
  • 削除された行はこの色です。
*Linux:CentOS6でmod_proxyが動かない [#y8c859b4]

かなりはまりました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"
 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) Chrome/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)
 [Mon Jun 17 11:33:11 2013] [error] (13)Permission denied: proxy: HTTP: attempt to 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)

***原因 [#m3d2d775]

原因は'''SELinux'''でした。

**原因 [#m3d2d775]

原因は''「SELinux」''でした。以下のサイトでわかりました。

-http://sysadminsjourney.com/content/2010/02/01/apache-modproxy-error-13permission-denied-error-rhel/

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

今回のerror_logの以下の箇所が該当エラー出力メッセージとなります。
 (13)Permission denied: proxy: HTTP: attempt to connect to 192.168.253.128:8080 (192.168.253.128) failed

この時に、/var/log/audit/audit.logには以下の内容の出力がありました。
 type=AVC msg=audit(1371436421.573:32939): avc:  denied  { name_connect } for  pid=8768 comm="httpd" dest=8080 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:http_cache_port_t:s0 tclass=tcp_socket

ビンゴです。つーか、SELinuxマジ厄介だわw

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

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

-httpdのプロセスが外部にアクセス可能とするSELinux設定のみ追加
 /usr/sbin/setsebool -P httpd_can_network_connect 1

-SELinuxそのものを無効とする&br;/etc/sysconfig/selinuxの該当行を編集
 SELINUX=disabled

ふー、はまったw