teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

iptablesの設定内容を修正した。

2015/09/01 12:50

投稿

eripong
eripong

スコア1546

answer CHANGED
@@ -2,16 +2,12 @@
2
2
 
3
3
  ### iptablesにポートの転送ルールが入っていた。
4
4
  iptablesによって80番ポートへの通信が8080番ポートに転送されていた。
5
+ それにより、ELBからApacheを通らず直接Tomcatにアクセスしていた。
5
6
  以下の様な設定が入っていたので、削除した。
6
7
  ```
7
- *nat
8
- :PREROUTING ACCEPT [0:0]
9
- :OUTPUT ACCEPT [0:0]
10
- :POSTROUTING ACCEPT [0:0]
11
- -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
8
+ -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
12
- COMMIT
9
+ -A PREROUTING -p udp -m udp --dport 80 -j REDIRECT --to-ports 8080
13
10
  ```
14
- ※実際の設定の通りかは分からないが、このような設定だった。
15
11
  ### http-proxy.confの設定に問題があった。
16
12
  8080番ポートを指定しておらず、localhostではなくFQDNになっていた。
17
13
  以下の設定を行った。
@@ -33,4 +29,4 @@
33
29
  以下の設定変更を行った。
34
30
  ```
35
31
  $ /usr/sbin/setsebool httpd_can_network_connect true
36
- ```
32
+ ```

1

結果を追記した。

2015/09/01 12:50

投稿

eripong
eripong

スコア1546

answer CHANGED
@@ -1,4 +1,36 @@
1
- ず、Aapcheのサーバどれかを特定して、そちらに設定を入れてくい。
1
+ 紆余曲折ありした、結果として修正が必要った点につて記述します
2
- Tomcatとは別のようなので、ほかにEC2のインスタンスはありませんか?
3
2
 
3
+ ### iptablesにポートの転送ルールが入っていた。
4
+ iptablesによって80番ポートへの通信が8080番ポートに転送されていた。
5
+ 以下の様な設定が入っていたので、削除した。
6
+ ```
7
+ *nat
8
+ :PREROUTING ACCEPT [0:0]
9
+ :OUTPUT ACCEPT [0:0]
10
+ :POSTROUTING ACCEPT [0:0]
11
+ -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
12
+ COMMIT
13
+ ```
14
+ ※実際の設定の通りかは分からないが、このような設定だった。
15
+ ### http-proxy.confの設定に問題があった。
16
+ 8080番ポートを指定しておらず、localhostではなくFQDNになっていた。
17
+ 以下の設定を行った。
18
+ ```
19
+ ProxyPass /◯◯/ ws://localhost:8080/◯◯/
20
+ ProxyPassReverse /◯◯/ ws://localhost:8080/◯◯/
21
+ ProxyPass /◯◯/ ajp://localhost:8009/◯◯/
22
+ ```
23
+ ※最終的にうまくいった設定ではない
4
- また、LBがあるいうことですが、APacheとTomcatの間にあるとうことですか?
24
+ ### SELinuxによってApacheとTomcatの通信が制限されてた。
25
+ http-proxy.confへの設定を行って起動すると、
26
+ Apacheのエラーログに以下が出力された。
27
+ ```
28
+ [Tue Sep 01 00:06:13.923821 2015] [proxy:error] [pid 11518:tid 140522228266752] (13)Permission denied: AH00957: WS: attempt to connect to 127.0.0.1:8080 (localhost) failed
29
+ [Tue Sep 01 00:06:13.924028 2015] [proxy:error] [pid 11518:tid 140522228266752] AH00959: ap_proxy_connect_backend disabling worker for (localhost) for 60s
30
+ [Tue Sep 01 00:06:13.924054 2015] [proxy_wstunnel:error] [pid 11518:tid 140522228266752] [client 127.0.0.1:44894] AH02452: failed to make connection to backend: localhost
31
+ ```
32
+ SELinuxによってApacheとTomcatの間の通信が制限されていたので、
33
+ 以下の設定変更を行った。
34
+ ```
35
+ $ /usr/sbin/setsebool httpd_can_network_connect true
36
+ ```