当前位置:  开发笔记 > 后端 > 正文

nginx:这里不允许[emerg]"server"指令

如何解决《nginx:这里不允许[emerg]"server"指令》经验,为你挑选了1个好方法。

我已经重新配置了nginx,但我无法使用以下配置重新启动它:

CONF:

server {
listen 80;
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
}


server {
listen 80;
server_name example.com;

access_log /var/log/nginx/access.log;
error_log  /var/log/nginx/error.log;

location /robots.txt {
    alias /path/to/robots.txt;
    access_log off;
    log_not_found off;
}

location = /favicon.ico { access_log off; log_not_found off; }

location / {
    proxy_pass_header Server;
    proxy_set_header Host $http_host;
    proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Scheme $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_connect_timeout 30;
    proxy_read_timeout 30;
    proxy_pass http://127.0.0.1:8000;
}

location /static {
    expires 1M;
    alias  /path/to/staticfiles;
}
}

在运行sudo nginx -c conf -t以测试配置后,返回以下错误我无法弄清楚究竟是什么问题

nginx: [emerg] "server" directive is not allowed here in    /etc/nginx/sites-available/config:1
nginx: configuration file /etc/nginx/sites-available/config test failed

Richard Smit.. 139

那不是nginx配置文件.这是部分的的nginx配置文件.

nginx配置文件(通常称为nginx.conf)的样子:

events {
    ...
}
http {
    ...
    server {
        ...
    }
}

server块被包含在一个http块内.

通常,配置分布在多个文件中,通过使用include指令引入其他片段(例如从sites-enabled目录中).

使用sudo nginx -t测试完整的配置文件,它开始于nginx.conf并使用额外的片段拉include指令.有关更多信息,请参阅此文



1> Richard Smit..:

那不是nginx配置文件.这是部分的的nginx配置文件.

nginx配置文件(通常称为nginx.conf)的样子:

events {
    ...
}
http {
    ...
    server {
        ...
    }
}

server块被包含在一个http块内.

通常,配置分布在多个文件中,通过使用include指令引入其他片段(例如从sites-enabled目录中).

使用sudo nginx -t测试完整的配置文件,它开始于nginx.conf并使用额外的片段拉include指令.有关更多信息,请参阅此文

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有