だから昨日私は私たちのサーバーで遊んでいました。
その上に、6つほどのコンテナーを実行するdocker-composeプロセスがあり、そのうちの1つはNginxです。私が昨日それで遊んだ前に、それはファイルをうまく提供していました。
DOで、curl -sSL https://agent.digitalocean.com/install.sh | sh
を実行することでメトリックをアップグレードできることに気づきました。なんてクールだろ?
それをやった後、奇妙なことが起こり始めました。原因かどうかはわかりませんが、確かに相関関係です。
DOドロップレットがあり、docker-compose up -d
を実行すると、次のようになります。
エラー:root_nginx_1の場合サービスを開始できませんnginx:エンドポイントでの外部接続のプログラミングに失敗しましたroot_nginx_1:ユーザーランドプロキシの開始中にエラーが発生しました:listen tcp 0.0.0.0:80:バインド:アドレスはすでに使用されています
わかりました、それは奇妙です...
以前は機能していましたが、今は起動しませんか?
ps aux -P | grep nginx
を実行して、何が起こっているかを確認し、次のようにします。
root 1514 0.0 0.1 124972 1388 ? Ss 12:57 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data 1517 0.0 0.2 125332 2960 ? S 12:57 0:00 nginx: worker process
root 5716 0.0 0.0 12944 940 pts/1 S+ 13:16 0:00 grep --color=auto nginx
うーん、なぜこれらの他のnginxプロセスがあるのですか?
わかりました。次にpkill nginx
を実行してそれらを取り除き、次にdocker-compose up -d
を実行すると、すべてが正常に起動し、エラーは発生しません。
しかし、example.com
サイトにアクセスしても、応答がありません。
構成の問題かもしれないと思って、docker logs root_nginx_1
を実行しましたが、何もありません。少なくともいくつかのヘッダーまたはリクエストがログに記録されている必要があります。
次に、必死の最後の試みで、Sudo shutdown -r now
を実行し、プロセス全体を最初からやり直します。
サーバーで実行されているnginxプロセスでも同じ結果になります。
そう、
@EEAAのアドバイスに従い、DOエージェントが何をしていたかを実際に調査した後、実際にはポート80と443を使用しています。
DigitalOcean Agentは、送信データにポート80と443を使用します。インバウンドアクセスは必要ありません。エージェントはアウトバウンドデータにのみポートを使用するため、干渉なしにWebサーバーを安全に実行できます。
ポート80は、DigitalOceanメタデータサービスに接続して認証トークンを取得するために使用されます。エージェントはこのトークンを使用して、メトリックバックエンドに対して認証し、その送信を暗号化します。
そしてさらに読んだ後Sudo apt-get purge do-agent
およびSudo rm /etc/apt/sources.list.d/digitalocean-agent.list
トリックをしました。
ここでできます そして私はあなたがそうすることをお勧めします、それについてすべて読んでください。