发现问题

KevinShiCN · 文章

发现问题

我在重启阿里云 ECS 的时候发现宝塔面板可以正常开启,但是宝塔面板的 Nginx 服务无法正常自动启动的,这也就导致我的项目无法正常访问

万幸的是 Nginx 服务此时仍然是可以通过面板手动开启

但是问题总是要解决的,于是先看log

/www/server/nginx/logs

找到error.log文件

发现报错如下

2021/03/10 00:06:01 [emerg] 743#0: host not found in upstream "域名" in /www/server/panel/vhost/nginx/proxy/`目标子域名`/6678156071b816a639a265441e95cde1_`目标子域名`.conf:4
log截图
log截图

查明起因

当我在宝塔面板新建一个网站

如果手动修改了某一个站点反向代理

并且目标URL使用了域名而非IP

那么当你后面再次反向代理目标URL修改为IP之后

反向代理配置的第四行将会维持原先proxy_pass值,也就是指向到域名

proxy_pass http://域名.com;
第四行错误的配置
第四行错误的配置

尽管此时你在面板中设置的是正确的

正确的面板设置
正确的面板设置

然而此时 Nginx 就是会在启动的时候报错导致无法随服务器自动运行!

解决问题

解决方案 1

如果能够删掉整个站点重新创建最稳妥的,之后再创建反向代理记得使用127.0.0.1:端口(如果你要指向别的服务器请不要127.0.0.1)

解决方案 2

这里我认为应该是宝塔的一个 BUG,因为我在宝塔面板已经将目标URL改成了IP,但在反向代理配置第四行仍然出现了没有随着改动进行变更的问题。

因此这里我们只需要将这个第四行(有些帖子反馈是第五行)的proxy_pass后面改到跟第十二行数值一致即可!

// 这里我将第四行与十二行的两个proxy_pass保持一致
proxy_pass http://127.0.0.1:端口;

只要确保第四行proxy_pass与我们的目标地址相同,服务就是可以正常随服务器自动启动了

正确的反向代理设置
正确的反向代理设置

这里我保存文件后重启 ECS 服务器,Nginx 服务终于可以正常启动了!!!

总结

宝塔毕竟是一款用来管理服务器的控制面板,因此如果没有看代码以及解决问题的能力那么将会非常头疼

看来还是要多学习啊!

推荐阅读

---

欢迎关注我的公众号“凯文有事找你”,原创技术生活经验教训文章第一时间推送。

<center> <img src="https://oss.kevinshicn.com/zhouji/04/%E5%85%AC%E4%BC%97%E5%8F%B7%E4%BA%8C%E7%BB%B4%E7%A0%81.png?x-oss-process=style/Interlace" style="width: 100px;"> </center>