Nginx по умолчанию работает на DigitalOcean Ubuntu 16.04

Фон

Поэтому вчера я играл с нашим сервером.

На нем есть процесс docker-compose, выполняющий около 6 контейнеров, одним из которых является Nginx. До того, как я поиграл с этим вчера, он отлично обслуживал файлы.

Что я сделал

Я заметил на DO, что я могу обновить свои метрики, запустив curl -sSL https://agent.digitalocean.com/install.sh | sh, Как круто правильно??

Ну, после того, как я это сделал, начали происходить странные вещи. Я не могу быть уверен, что это причинно-следственная связь, но это, безусловно, корреляция.

Что я пробовал

У меня есть капля DO, и я бегу 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, запущенным на сервере.

Так,

  1. Это нормально, если этот процесс nginx запускается на сервере при запуске?
  2. Как я могу заставить мой контейнер nginx прослушивать порт 80 без конфликта?

1 ответ

Решение

После следования совету @EEAA и тщательного изучения того, что делал агент DO DO, он действительно использует порты 80 и 443.

Агент DigitalOcean использует порты 80 и 443 для исходящих данных. Входящий доступ не требуется. Поскольку Агент использует порты только для исходящих данных, вы можете безопасно запускать веб-сервер без помех.

Порт 80 используется для связи со службой метаданных DigitalOcean для получения токена аутентификации. Агент использует этот токен для аутентификации в бэкэнде метрик и шифрования своих передач.

И после дальнейшего чтения sudo apt-get purge do-agent а также sudo rm /etc/apt/sources.list.d/digitalocean-agent.list сделал свое дело.

Здесь вы можете, и я рекомендую вам, прочитать все об этом.

Другие вопросы по тегам