很多人在刚开始接触网站的时候都会选择使用nginx搭建,毕竟apache不是很适合小博客小网站,所以接触到的问题也集中在了nginx上,本篇主要讲一下nginx经常会遇到的、也很让新手感到棘手的问题:

1Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

理解问题

启动nginx提示Job for nginx.service failed because the control process...其实并不是一个问题,而基本都是一类问题:配置文件错误

nginx配置文件为/etc/nginx/conf.d/*.conf,也就是/etc/nginx/conf.d/文件夹下的所有以.conf结尾的文件,如果同时存在两个以上的配置文件,那么这两个文件是会同时生效的,也就是nginx会把两个文件的内容拼接在一起,然后当成一个文件来运行,所以,如果nginx运行出现问题,记得检查/etc/nginx/conf.d/文件夹下所有以.conf结尾的配置文件。

解决问题

既然知道问题的方向,那么接下来就是找到出问题的位置。

按照出错时的提示:

1Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

运行如下命令:

1systemctl status nginx -l

结果如下:

nginx-job-for-nginx-failed.png

可以看到出错的是/etc/nginx/conf.d/wenjinyu.me.conf的第3行,问题所在也写的很清楚,就是server_name后面没有加上分号;,所以编辑配置文件找到第4行,在最后加上分号就行。

注意:上面提示的是第4行,事实上出现问题的是第3行,出现这样的提示原因是:第3行没添加分号而导致出错判定在第4行,对于新手来说最直接的找法是按照提示找,如果找不到就找上一行,问题一定在这两行中。

1vim /etc/nginx/conf.d/wenjinyu.me.conf

加上分号:

nginx-job-for-nginx-failed-1.png

然后重启nginx就可以了

1systemctl restart nginx
  • 一个vim文本编辑器的小技巧:

在找配置文件出错的那一行时,可以在输入i进入编辑模式之前,输入冒号:,再加上第几行,比如上面是第3行,那么就输入:3,然后回车,光标就会跳到第3行开头。

vim快速跳转行数.png