报错怎么办?不要慌,排它!

1.具体报错提示信息

nginx: [emerg] “server” directive is not allowed here in /usr/local/nginx/conf/nginx.conf:53
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed

2.报错背景介绍

做nginx服务的基于域名的niginx虚拟主机时,修改配置文件vim /usr/local/nginx/conf/nginx.conf 配置具体域名字符集访问日志和相应的站点位置后,保存退出,在nginx -t 检查文件时出现报错。

我的具体配置信息如下

[root@www momo]# vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述


[root@www momo]# nginx -t
nginx: [emerg] "server" directive is not allowed here in /usr/local/nginx/conf/nginx.conf:53
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed

4.排错思路过程

(1)首先,要看报错提示内容,定位故障位置
nginx: [emerg] “server” directive is not allowed here in /usr/local/nginx/conf/nginx.conf:53
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed

根据报错提示表示在53行的service部分不被允许,那就重新进入配置文件,找到53行的service部分,查看是否配置有问题

(2)排错分析及过程
一开始我以为是service部分配置输入有错,就将这部分内容删除后重新设置了一下
在这里插入图片描述
结果不如意,重新检测后还是报一样的错误

(3)转机来了
改变思路重新仔细看配置文件内容,真的是看了好久

终于发现问题,一万个我草奔袭而来

发现问题解决问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
分析:
53行的service部分应该是包含在http{}的模块内的,但是我在51行的位置多加了一个} ,相当于把53行的service部分括出了http模块范围外,所以才会提示这部分service服务不被允许。那就简单了,把51行的}去掉应该就解决了。

5.你体验过这样的快乐吗,不,你不懂。

果然分析的没错,看到successful是不是很亲切,酸爽的感觉。虽然问题不大,是小错误,但是体会到了成功的快乐。

[root@www momo]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

在这里插入图片描述

6.小结一下

(1)故障不可怕,谁遇谁强大,遇到故障不用慌,静下心来对待问题
(2)思路很重要,根据报错提示,定位故障,有方向的查错
(3)没有解决不了的问题,如果有那就是时间问题

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐