Итак, вчера я играл с нашим сервером.
На нем у нас есть процесс создания докеров, запускающий около 6 контейнеров, одним из которых является Nginx. До того, как я вчера поигрался с ним, он отлично обслуживал файлы.
Я заметил на DO, что могу обновить свои показатели, запустив curl -sSL https://agent.digitalocean.com/install.sh | sh
. Как здорово, правда ??
После того, как я это сделал, начали происходить странные вещи. Я не могу быть уверен, что это причинная связь, но это определенно корреляция.
У меня есть капля ДО, и я бегу docker-compose up -d
и я получаю:
ОШИБКА: для root_nginx_1 Невозможно запустить службу nginx: драйвер не удалось программировать внешнее подключение на конечной точке root_nginx_1: Ошибка при запуске прокси-сервера пользователя: прослушивание tcp 0.0.0.0:80: bind: адрес уже используется
Хорошо, это странно ...
Раньше он работал, а теперь даже не запускается?
я бегу 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 использует порты 80 и 443 для исходящих данных. Входящий доступ не требуется. Поскольку агент использует порты только для исходящих данных, вы можете безопасно запускать веб-сервер без помех.
Порт 80 используется для связи со службой метаданных DigitalOcean для получения токена аутентификации. Агент использует этот токен для аутентификации на сервере метрик и шифрования своих передач.
И после дальнейшего чтения sudo apt-get purge do-agent
и sudo rm /etc/apt/sources.list.d/digitalocean-agent.list
сделали свое дело.
Здесь вы можете, и я рекомендую вам это сделать, прочитайте все об этом.