Apache 2.4.7を実行し、ポート80でサイトをホストするUbuntu 14.04サーバーがあります。今日、私はポート80へのすべての要求が他のウェブサイトにリダイレクトされ、次のように応答することがわかりました。
HTTP/1.1 301 Moved Permanently
Server: nginx/1.6.2
Date: Thu, 15 Jan 2015 13:37:18 GMT
Content-Type: text/html
Content-Length: 184
Connection: keep-alive
Location: some.website.com
私はnginxをインストールしていませんが、それでもps ax | grep nginx
そのコマンドを使用してnginxプロセスを検索しましたが、結果は1つだけでした25759 pts/1 S+ 0:00 grep --color=auto nginx
。問題のあるプロセスのようには見えませんが、それでもkill 25759
放棄してください。-bash: kill: (25759) - No such process
次に、Apacheを停止し(リダイレクトは変更しません)、コマンドを使用してポート80でリッスンしている人が誰であるかを確認することにしましたが、コマンドを使用してすべてのリスナーを一覧lsof -i :80 | grep LISTEN
表示した場合、コマンドは何も通知しませんでした。 lsof -i | grep LISTEN
以下を取得します。リスト:
sshd 673 root 3u IPv4 7078 0t0 TCP *:ssh (LISTEN)
tinyproxy 972 root 0u IPv4 7654 0t0 TCP *:9582 (LISTEN)
Xtightvnc 1173 root 0u IPv4 7914 0t0 TCP *:x11-1 (LISTEN)
これらはすべて既知のエンティティです。 Apacheを起動すると、次の行も表示されます。
apache2 25926 root 4u IPv6 139312 0t0 TCP *:http (LISTEN)
次にiptablesを考えましたが、空のiptables -L
リストが表示されます。
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
その場合、問題は、このリダイレクト(インターネットプロバイダが他の複数のコンピュータで特定されている)の原因を見つけて削除する方法です。
アップデート:1.iptables -t nat -L
次のリストを作成します。
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere anywhere
質問に貼り付けたリダイレクト応答をどのように受け取ることができますか? 5つの方法があります:
Google Chromeを介してリモートコンピュータでチャールズエージェント リクエストIP:
GET / HTTP/1.1 Host: 37.139.9.156 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 Accept-Encoding: gzip, deflate, sdch Accept-Language: en-US;q=0.6,en;q=0.4
答えは質問の冒頭に記載されているとおりです。
ただし、Google ChromeとCharlesプロキシを介してホスト名を使用するリモートシステムは正しく応答します(リダイレクトなし)。必要:
GET / HTTP/1.1 Host: hostname Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 Accept-Encoding: gzip, deflate, sdch Accept-Language: en-US;q=0.6,en;q=0.4
サーバーに渡されました
curl -v http://ip
* Rebuilt URL to: http://ip/ * Hostname was NOT found in DNS cache * Trying ip... * Connected to ip (ip) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.35.0 > Host: ip > Accept: */* > < HTTP/1.1 301 Moved Permanently * Server nginx/1.6.2 is not blacklisted < Server: nginx/1.6.2 < Date: Thu, 15 Jan 2015 14:25:20 GMT < Content-Type: text/html < Content-Length: 184 < Connection: keep-alive < Location: http://www.sputton.com/ < <html> <head><title>301 Moved Permanently</title></head> <body bgcolor="white"> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx/1.6.2</center> </body> </html> * Connection #0 to host ip left intact
サーバーに渡されました
curl -v http://localhost
* Connected to localhost (127.0.0.1) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.35.0 > Host: localhost > Accept: */* > < HTTP/1.1 200 OK < Date: Thu, 15 Jan 2015 14:24:48 GMT * Server Apache/2.4.7 (Ubuntu) is not blacklisted < Server: Apache/2.4.7 (Ubuntu) < Access-Control-Allow-Origin: * < Access-Control-Allow-Headers: Authorization < Access-Control-Allow-Methods: POST, GET, OPTIONS < CACHE-CONTROL: no-cache < EXPIRES: Thu, 29 Oct 1998 17:04:19 GMT < PRAGMA: no-cache < CONTENT-LENGTH: 7134 < Vary: Accept-Encoding < Content-Type: text/html; charset=utf-8 < Correct body output * Connection #0 to host localhost left intact
サーバーに渡されました
curl -v http://hostname
* Rebuilt URL to: hostname * Hostname was NOT found in DNS cache * Trying ip... * Connected to hostname (ip) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.35.0 > Host: hostname > Accept: */* > < HTTP/1.1 200 OK < Date: Thu, 15 Jan 2015 14:32:01 GMT * Server Apache/2.4.7 (Ubuntu) is not blacklisted < Server: Apache/2.4.7 (Ubuntu) < Access-Control-Allow-Origin: * < Access-Control-Allow-Headers: Authorization < Access-Control-Allow-Methods: POST, GET, OPTIONS < CACHE-CONTROL: no-cache < EXPIRES: Thu, 29 Oct 1998 17:04:19 GMT < PRAGMA: no-cache < CONTENT-LENGTH: 7134 < Vary: Accept-Encoding < Content-Type: text/html; charset=utf-8 < Correct body output * Connection #0 to host hostname left intact
したがって、ホスト名を介してページを要求することは問題ありませんが、直接IP要求は失敗します。
ベストアンサー1
私はnginxをインストールしておらず、まだps ax |を使ってnginxプロセスを検索しました。 grep nginx コマンドの結果は 25759 pts/1 S+ 0:00 grep --color=auto nginx です。問題のプロセスのようには見えませんが、まだ: kill 25759spawned -bash: kill: (25759) - そのプロセスはありません。
grepプロセス(ps auxコマンドで)を終了しようとしています。しかし、このプロセスが表示されるときは終了する必要があります。
今すぐ - 問題について:/etc/apache2/sites-enabled/で有効になっている仮想ホストがないか、/var/www/index.html(または保存するすべての場所)Webサイトにリダイレクトがないことを確認してください。 )定義。
/etc/hostsをチェックして、Webサイトアドレスから別のWebサイトアドレスにリダイレクトされるいくつかのエイリアスを定義していないことを確認してください。
完全な/ etc /および/ var / www(Webページがある場合)「some.website.com」をgrep /検索することもできます。システムのエントリがそこにリダイレクトされる場合は、理由(ファイル)を見つける必要があります。