一、背景
Debian/Ubuntu/Deepin安装Nginx
- 通过官方安装文档方式安装nginx,whereis nginx查看目录如下:
- 配置文件在/etc/nginx下
- cat /etc/nginx/nginx.conf,发现很多内容,其中有一句
include /etc/nginx/config.d/*.conf
,说明会引入config.d下面的所有配置文件,为了不影响主配置文件的大量内容,我们新建子配置文件,目的是修改nginx的默认首页,写成自己的页面用于测试
cd /etc/nginx/config.d
sudo touch index.conf
sudo vim index.conf
- 一顿操作:wq,然后重启 systemctl restart nginx.service,结果报错 :
/etc/nginx/conf.d$ systemctl restart nginx.service
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.
-
journalctl -xe
并没有看到有效信息,nginx默认的日志目录在/var/log/nginx下,sudo cat error.log
可以看到"http" directive is not allowed here in /etc/nginx/conf.d/index.conf:1
二、解决
- 回忆之前的主conf文件,
include /etc/nginx/config.d/*.conf
实在http块内部的,nginx配置的结构是http>server>location - 原因知道了,因为我的config.d下子配置文件里从http开始写的,引入主配置文件以后,成了双层http嵌套,所以报错
- 最终修改为如下结构即可:
server {
listen 80;
root /usr/share/nginx/html;
index index.html;
location / {
}
}
网友评论