ISPマネージャーのポート8080の表示に関する問題の解決(ポート80へのリダイレクトのセットアップ)

今日、問題に遭遇しました-古いシステム管理者のミスにより、非常にまれなケースの1つで、通常の80ポートからポート8080へのリダイレクトがあったことが判明しました。



このため、example.com:8080アドレスを含むページ全体がYandexインデックスに登録されました。これは、問題が3年間存在していたためです。



この問題は、サーバーがISPマネージャーを使用して自動的に構成されたため、サイトがexample.comとexample.com:8080の両方でアクセス可能であり、5 ipがサーバーに接続されていることを考慮して悪化した-アドレスと約20のサイトがオンになっているため、Apacheとnginxを正しい方法で構成するためにすべてを手動で再構成することはできませんでした(Apacheを127.0.0.1でのみリッスンし、同じポートとnginxでのみハングさせる) 。 ISPマネージャーを使用するすべてのサイトは潜在的に問題の影響を受ける可能性があるため 、非常に関連性が高いと考え、必要に応じて全員がチェックおよび修正できるようにソリューションを公開することにしました。



したがって、タスクは「少し血」をすることでした:

1. example.comが正常に機能するが、example.com:8080で開かないようにするため

2.特定のサイトのポート8080から、Yandexの発行に該当するページの機能を維持するためにポート80にリダイレクトされるようにします。





答えに直行し、背景なし

クイックグーグルは良いものを何も表示しませんでした、ほとんどの方法はここで提案され iptablesを使用した方法に似ていました

iptables -A INPUT -p tcp -m tcp --dport 8080 -j REDIRECT --to-ports 80
      
      





問題は、この方法が機能しないことです-dmesgは

 ip_tables REDIRECT target: only valid in nat table, not filter.
      
      







少しグーグルで調べた後、nginx-ruメーリングリストでオプションを見つけました。

www.lexa.ru/nginx-ru/msg21134.html

オプションはこれでした-apache.confのサイトを私のIP 11.22.33.44:8080から127.0.0.1:8080に転送し、nginx.confでそれぞれ私のサイトの11.22.33.44:8080の代わりにproxy_pass 127.0.0.1:8080を登録し、新しいサーバーをnginx configに追加します

  server { listen 11.22.33.44:8080; rewrite ^/(.*)$ http://$host:80/$1 redirect; }
      
      







原則として、このオプションは真実に似ていましたが、1つの問題がありました。Apacheはポート11.22.33.44:8080を永続的にリッスンし、それに応じてnginxがリッスンを開始できませんでした。



それから私は夜明けしました-あなたはそれを取得して同じリダイレクトを実装できますが、nginxではなくapacheを使用します。



対応するVirtualHostを取得してapache2.confに追加するだけです。

 <VirtualHost 11.22.33.44:8080> ServerName example.com Redirect 301 / http://example.com/ </VirtualHost>
      
      







私はそれを試しました-そして出来上がり、それはすべてうまくいきました!



問題解決



したがって、debian、nginx、apacheがあり、すべてがip 11.22.33.44のexample.comのisp-managerによって設定されている場合、「 ポート8080から80にリダイレクトする方法という問題の解決策は、4つの簡単な手順で構成されます:

1. Apache構成(/etc/apache2/apache2.conf)で、すべての出現箇所を変更します

 Virtual Host 11.22.33.44:8080
      
      





 VirtualHost 127.0.0.1:8080
      
      





2. Apache構成(/etc/apache2/apache2.conf)へのリダイレクトを含む新しいVirtualHostを追加します。

 <VirtualHost 11.22.33.44:8080> ServerName example.com Redirect 301 / http://example.com/ </VirtualHost>
      
      





3. nginx config(/etc/nginx/nginx.conf)で、すべての出現を変更します

 proxy_pass http://11.22.33.44:8080
      
      







 proxy_pass http://127.0.0.1:8080
      
      





4. Apacheを再起動し、nginxを再起動します

 /etc/init.d/apache2 restart /etc/init.d/nginx restart
      
      






All Articles