Nginx 默认在 DigitalOcean Ubuntu 16.04 上运行

Nginx 默认在 DigitalOcean Ubuntu 16.04 上运行

背景

所以昨天我在玩我们的服务器。

上面有一个 docker-compose 进程,运行着大约 6 个容器,其中一个是 Nginx。在我昨天试用它之前,它能很好地提供文件服务。

我做了什么

我在 DO 上注意到,我可以通过跑步来升级我的指标curl -sSL https://agent.digitalocean.com/install.sh | sh。这很酷吧?

在我这样做之后,奇怪的事情开始发生。我不能确定这是因果关系,但肯定是相关性。

我尝试过

我有我的 DO droplet,我运行docker-compose up -d并得到:

错误:对于 root_nginx_1,无法启动服务 nginx:驱动程序无法在端点 root_nginx_1 上编程外部连接:启动用户空间代理时出错:监听 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 进程的结果相同。

所以,

  1. 这个nginx进程在服务器启动时运行是正常的吗?
  2. 如何让我的 nginx 容器无冲突地监听端口 80?

答案1

在听取了@EEAA 的建议并实际研究了 DO Agent 到底在做什么之后,发现它确实在使用端口 80 和 443。

DigitalOcean Agent 使用端口 80 和 443 来传输传出数据。无需传入访问。由于 Agent 仅使用端口来传输传出数据,因此您可以安全地运行 Web 服务器而不会受到干扰。

端口 80 用于联系 DigitalOcean 元数据服务以获取身份验证令牌。代理使用此令牌向指标后端进行身份验证并加密其传输。

经过进一步阅读sudo apt-get purge do-agentsudo rm /etc/apt/sources.list.d/digitalocean-agent.list成功了。

您可以在这里,我建议你去读一下全部内容。

相关内容