我真的希望有人能帮我解决这个问题。经过大量搜索,我还是找不到解决方案。
我在 NGINX 上运行我的网站并启用了 Varnish,但是,当我尝试将我的域名的 www 版本重定向到非 www 版本时,它不起作用,而且我尝试了很多种不同的方法。
这是我目前的配置文件:
server {
server_name ~^(.+\.)(?<domain>.+\..+)$;
rewrite ^ $scheme://domain.com permanent;
}
server {
listen 8080;
listen [::]:8080 ipv6only=on default_server;
...
..
.
}
当我尝试重新启动 NGINX 时,出现以下错误:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
有谁知道发生什么事了吗?
答案1
您尚未为第一个“服务器”(带重定向)设置“监听”参数。
Nginx 默认监听 *:80(以超级用户身份运行时)或 *:8000(以普通用户身份运行时)。
Varnish 已绑定 80 端口。因此,您只需设置“listen 8080”;对于所有“服务器”,您必须阻止绑定到默认端口
答案2
为什么要重启 Nginx?它支持重新加载配置文件:
nginx -s reload