美文网首页
nginx配置:"http" directive is not

nginx配置:"http" directive is not

作者: 杰x6770 | 来源:发表于2019-09-25 10:30 被阅读0次

    一、背景

    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 / {
        }
    }
    

    相关文章

      网友评论

          本文标题:nginx配置:"http" directive is not

          本文链接:https://www.haomeiwen.com/subject/vjuiuctx.html