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, запущенным на сервере.
Так,
- Это нормально, если этот процесс nginx запускается на сервере при запуске?
- Как я могу заставить мой контейнер 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
сделал свое дело.
Здесь вы можете, и я рекомендую вам, прочитать все об этом.