我花了好几个小时来解决这个问题。
我安装了 varnish 并将端口设置为 80。之后,我将 nginx 虚拟主机文件的 listen 指令从 80 更改为 8080:
listen 8080;
但是,页面被无限重定向。当我检查端口绑定时,我发现一个奇怪的事情是 nginx 同时监听端口 80 和 8080,而 varnish 也在监听 80。
$ sudo lsof -P -n -i :80 -i :8080 -i :443 | grep LISTEN
nginx 8433 root 6u IPv4 2401466757 0t0 TCP *:80 (LISTEN)
nginx 8433 root 7u IPv4 2401466758 0t0 TCP *:8080 (LISTEN)
nginx 8436 www-data 6u IPv4 2401466757 0t0 TCP *:80 (LISTEN)
nginx 8436 www-data 7u IPv4 2401466758 0t0 TCP *:8080 (LISTEN)
nginx 8437 www-data 6u IPv4 2401466757 0t0 TCP *:80 (LISTEN)
nginx 8437 www-data 7u IPv4 2401466758 0t0 TCP *:8080 (LISTEN)
nginx 8438 www-data 6u IPv4 2401466757 0t0 TCP *:80 (LISTEN)
nginx 8438 www-data 7u IPv4 2401466758 0t0 TCP *:8080 (LISTEN)
nginx 8439 www-data 6u IPv4 2401466757 0t0 TCP *:80 (LISTEN)
nginx 8439 www-data 7u IPv4 2401466758 0t0 TCP *:8080 (LISTEN)
varnishd 8520 nobody 8u IPv6 2401837251 0t0 TCP *:80 (LISTEN)
据我所知,nginx 应该只监听 8080 端口,而 varnish 应该只监听 80 端口。但是为什么会发生这种情况?
笔记
- 没有安装任何防火墙,如 ufw。
listen 80;
任何配置文件中均无任何剩余。- 系统是ubuntu
- nginx 文件夹内不存在任何默认配置文件
答案1
最有可能的是,在基于 rpm 的安装中,您有 /etc/nginx/conf.d/default.conf。它具有默认主机,监听端口 80。最佳做法是修剪该文件,以便进一步的升级不会替换它。