Назад | Перейти на главную страницу

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

Задний план

Итак, вчера я играл с нашим сервером.

На нем у нас есть процесс создания докеров, запускающий около 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, запущенным на сервере.

Так,

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

После советов @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 сделали свое дело.

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