Apache ポート変更の問題

Apache ポート変更の問題

Apache+Wordpress マシン (Debian) に問題があります。デフォルトではポート 80 でリッスンしますが、これを変更してポート 9090 で「リッスン」するようになりました。

/etc/Apache2/ports.conf
[...]
NameVirtualHost *:9090
Listen 0.0.0.0:9090
[...]

/etc/apache2/sites-available/default
[...]
<VirtualHost *:9090>
[...]

y経由でアクセスしようとしましたが、http://10.250.10.70:9090機能しません。(Chrome エラーERR_CONNECTION_REFUSED:)

同じマシンで試してみると、wget http://10.250.10.70:9090/ -O -次の出力が得られます。

--2015-05-14 12:31:43--  http://10.250.10.70:9090/
Connecting to 10.250.10.70:9090... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://10.250.10.70/ [following]
--2015-05-14 12:31:43--  http://10.250.10.70/
Connecting to 10.250.10.70:80... failed: Connection refused.

ポート80でもリッスンしているが、/etc/apache2/sites-available/defaultを変更していない場合

/etc/Apache2/ports.conf
[...]
NameVirtualHost *:9090
Listen 0.0.0.0:9090
Listen 0.0.0.0:80
[...]

WebSite はポート 80 で動作します (NameVirtualHost はポート 9090 でのみ動作するはずなので、理由はわかりません)。また、ポート 9090 経由でアクセスすると動作しますが、ポート 80 で同じ URI にリダイレクトされます。Web サーバー経由で再度実行すると、wget http://10.250.10.70:9090/ -O - 次の応答が返されます。

--2015-05-14 12:38:16--  http://10.250.10.70:9090/
Connecting to 10.250.10.70:9090... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://10.250.10.70/ [following]
--2015-05-14 12:38:16--  http://10.250.10.70/
Connecting to 10.250.10.70:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `STDOUT'

    [<=>                                    ] 0           --.-K/s              <!DOCTYPE html>
[...]

まず、VirtualHost がポート 80 で動作する理由がわかりません。次に、このシステムが、私がリッスンするすべてのトラフィック (この場合は 9090) をポート 80 にリダイレクトする理由がわかりません...

私は完全に「迷子」です

皆さんありがとう

注記:

root@TWBLOG:~# apache2 -v
Server version: Apache/2.2.22 (Debian)
Server built:   Dec 23 2014 22:48:29

答え1

おそらく、問題の原因はファイアウォールです。次のコマンドでポート 9090 を開きます。

sudo iptables -A INPUT -p tcp --dport 9090 -j ACCEPT

ufw を使用している場合:

sudo ufw allow 9090

ポート 80 のすべてのリクエストを 9090 にリダイレクトする場合:

sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 9090

答え2

アプリケーション (WordPress) がリダイレクトを生成しています。WordPress の構成を確認し、アクセスする新しいポートを反映するようにベース URI を設定する必要があります。

設定の変更については、WordPress のドキュメントも参照してください。http://codex.wordpress.org/Changing_The_Site_URL

Apache は定義に一致しないリクエストを受け取ると、<VirtualHost>最初に見つかった (または唯一見つかった) デフォルトを使用します。これにより、ポート 80 にヒットするリクエストが引き続き WordPress の VirtualHost にヒットする理由が説明されます。

最後に、外部マシンからの接続に問題がある場合は、マシンのファイアウォールが新しいリスン ポートへの接続を許可しているかどうかを確認します。

関連情報