在我的服务器(Debian)上我安装了 nginx。使用这个 nginx,我安装了 Wordpress(不是在 docker 中,而是“直接”安装)。 Nginx 用于使用 SSL 运行 WordPress,将所有端口 80 重定向到 443,此外还充当 docker 容器(nextcould、mail 等)的反向代理。 一切都很好。 有一次,我的 Debian 抱怨它太旧了,不再受支持,所以我升级了它。 (现在是 Debian Buster)。
Debian 升级后,“东西”不再像以前那样工作了。 目前我面临的问题是我运行了两个 nginx 主进程:
root 929 0.0 0.0 9332 1184 ? Ss 12:58 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
nobody 930 0.0 0.0 9656 3756 ? S 12:58 0:00 nginx: worker process
nobody 931 0.0 0.0 9656 3740 ? S 12:58 0:00 nginx: worker process
nobody 932 0.0 0.0 9864 7108 ? S 12:58 0:00 nginx: worker process
nobody 933 0.0 0.0 9656 3764 ? S 12:58 0:00 nginx: worker process
root 2398 0.0 0.0 196 4 pts/0 S+ 12:59 0:00 s6-supervise nginx
root 2428 0.0 0.0 41532 7144 ? Ss 12:59 0:00 nginx: master process /usr/sbin/nginx -g daemon off;
www-data 2527 0.0 0.0 41888 4920 ? S 12:59 0:00 nginx: worker process
www-data 2528 0.0 0.0 41888 2912 ? S 12:59 0:00 nginx: worker process
www-data 2529 0.0 0.0 41888 2912 ? S 12:59 0:00 nginx: worker process
www-data 2530 0.0 0.0 41888 2912 ? S 12:59 0:00 nginx: worker process
www-data 2531 0.0 0.0 41888 2912 ? S 12:59 0:00 nginx: worker process
www-data 2532 0.0 0.0 41888 2912 ? S 12:59 0:00 nginx: worker process
www-data 2533 0.0 0.0 41888 2912 ? S 12:59 0:00 nginx: worker process
www-data 2534 0.0 0.0 41888 2912 ? S 12:59 0:00 nginx: worker process
root 16519 0.0 0.0 6204 892 pts/0 S+ 14:49 0:00 grep nginx
我想知道这两个实例是从哪里启动的。我在这里发表了一篇类似的文章,它说它可以作为 /etc/init.d (它所在的位置)中的启动脚本启动,也可以作为 /etc/initd 中的服务启动 => 不是我的情况,我检查过 另一个答案是:也许它在 docker 中运行 => 不是我的情况。没有 docker 运行 nginx。
让两个主进程运行 nginx 日志,抱怨无法访问端口 443 和 80。似乎两个主进程都尝试处理这些端口。 我的假设是 nginx 的升级让我获得了第二个 nginx master。 查看进程的所有者,有 root 和没有人。这似乎是“新”的 nginx 实例。用户 www-data 听起来像我的旧用户。 如何摆脱两个主人,回到单一主人?
PSTree 给了我这个(我删除了几行):
systemd─┬─agetty
├─atd
├─containerd───13*[{containerd}]
├─containerd-shim─┬─s6-svscan─┬─s6-supervise
│ │ ├─9*[s6-supervise───s6-log]
│ │ ├─s6-supervise───dovecot─┬─anvil
│ │ │ ├─config
│ │ │ ├─2*[imap-login]
│ │ │ ├─log
│ │ │ └─stats
│ │ ├─2*[s6-supervise───node───10*[{node}]]
│ │ ├─s6-supervise───rsyslogd───2*[{rsyslogd}]
│ │ ├─s6-supervise───nginx───8*[nginx]
│ │ ├─s6-supervise───clamd───{clamd}
│ │ ├─s6-supervise───redis-server───4*[{redis-server}]
│ │ ├─s6-supervise───cron
│ │ ├─s6-supervise───rspamd───9*[rspamd]
│ │ ├─s6-supervise───php-fpm7.4───3*[php-fpm7.4]
│ │ └─s6-supervise───p0f
│ └─11*[{containerd-shim}]
├─cron
├─dbus-daemon
├─dockerd─┬─2*[docker-proxy───12*[{docker-proxy}]]
│ ├─2*[docker-proxy───5*[{docker-proxy}]]
│ ├─12*[docker-proxy───7*[{docker-proxy}]]
│ ├─4*[docker-proxy───6*[{docker-proxy}]]
│ ├─docker-proxy───8*[{docker-proxy}]
│ ├─docker-proxy───13*[{docker-proxy}]
│ └─35*[{dockerd}]
├─nginx───4*[nginx]
我记得我还必须更新 docker。这会给我带来麻烦吗?我目前正在尝试找出这位 S6 主管告诉我的内容。
终于我找到了它来自哪里......我有一个邮件软件在 Docker 容器中运行。该容器也正在运行 NGINX。