私はすべてのIPでポート80のすべてのリクエストをポート9000にリダイレクトしようとしています
eth0 に複数の IP アドレスをホストする 1 台のサーバーがあります。問題を説明するために、それらはすべて apache を使用してポート 9000 を listen するとします。
プライマリIPアドレス(.106)のみが正常に動作し、トラフィックをリダイレクトしています。
Chain PREROUTING (policy ACCEPT 2132 packets, 256K bytes)
pkts bytes target prot opt in out source destination
128 7236 REDIRECT tcp -- eth0 * 0.0.0.0/0 173.234.60.106 tcp dpt:80 redir ports 9000
151 8624 REDIRECT tcp -- eth0 * 0.0.0.0/0 173.234.60.107 tcp dpt:80 redir ports 9000
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 21 1574 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9000
私の仮想ホスト設定で 173.234.60.107:9000 (またはその他の IP) でリッスンしている他のすべては、デフォルトの /var/www/index.html ページにリダイレクトされます。
例: www.tiprocker.com - ip .106 -> 正常に接続し、ssl mvmdesign.org にリダイレクト - ip .107 -> デフォルト ページ
単一のサーバー インスタンスで複数の IP を操作するときに、何か特別なことが起こるのでしょうか? また、nodejs を使用して 80 から 9001 までのすべてのトラフィックをまったく別の IP にリダイレクトしようとしましたが、その場合はページが見つからないというメッセージが表示されるので、iptables の何かが正しく機能していないようです。
編集: Apacheの設定に関する追加情報はこちら
confファイルhttps://gist.github.com/maruf89/8f162b49addc5dc49902
// separate file
NameVirtualHost 173.234.60.106:9000
NameVirtualHost 173.234.60.106:443
NameVirtualHost 173.234.60.107:9000
NameVirtualHost 173.234.60.107:443
mvmdesign.org vhost ファイルhttps://gist.github.com/maruf89/363b6edd111834ad78bb
答え1
デフォルトのページが表示されてリダイレクトが機能する場合 (バイトとパケットのカウンターが >0 であることからもわかります)、これは Apache の設定の問題です。