Nginx默认运行在DigitalOcean Ubuntu 16.04上

背景

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

在它上面我们有一个docker-compose进程,运行6个左右的容器,其中一个是Nginx。 在昨天我玩了之前,它提供的文件就好了。

我做了什么

我注意到,我可以通过运行curl -sSL https://agent.digitalocean.com/install.sh | sh来升级我的指标curl -sSL https://agent.digitalocean.com/install.sh | sh curl -sSL https://agent.digitalocean.com/install.sh | sh 。 多酷呢?

那么,我做到这一点后,奇怪的事情开始发生。 我不能确定它是因果关系,但它肯定是相关的。

我试过了

我有我的DO滴,我运行docker-compose up -d ,我得到一个:

错误:对于root_nginx_1无法启动服务nginx:驱动程序无法编程端点上的外部连接root_nginx_1:启动userland代理时出错:listen tcp 0.0.0.0:80:bind:地址已经在使用

好吧,那很奇怪…

这是工作之前,现在它甚至不会启动?

我运行ps aux -P | grep nginx 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 docker-compose up -d ,所有的东西都很好,很好,没有错误。

但是,现在当我去我的example.com网站,我没有得到任何回应。

认为这可能是一个configuration问题,我运行docker logs root_nginx_1 ,没有什么。 应该至less有一些标题或请求被logging。

然后在绝望的最后一次尝试中,我sudo shutdown -r now运行sudo shutdown -r now并开始整个过程​​。

与在服务器上运行的nginx进程相同的结果。

所以,

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

在遵循@EEAA的build议之后,仔细研究DO Agent在做什么,它的确在使用端口80和443。

DigitalOcean Agent使用端口80和443作为传出数据。 入站访问不是必需的。 由于代理仅将端口用于出站数据,因此您可以安全地运行Web服务器而不受干扰。

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

并进一步阅读后, sudo apt-get purge do-agentsudo rm /etc/apt/sources.list.d/digitalocean-agent.list伎俩。

在这里,你可以 ,我build议你做,阅读所有关于它。