nginx意外结束文件,期待“;”或/ etc / nginx / sites-enabled / default中的“}”:Raspbian上的20

时间:2016-05-10 02:20:06

标签: nginx raspbian raspberry-pi3

我是nginx和Raspberry的新手。

我使用

安装了nginx
  

sudo apt-get install

那时一切都很好。当我试图重新启动nginx时出现了问题,它抛出了这个错误

  

nginx.service的作业失败。有关详细信息,请参阅'systemctl status ngins.service'和'journaldtl -xn'

经过调查,我发现问题是下一个错误:

  

意外的文件结束,期待“;”或/ etc / nginx / sites-enabled / default中的“}”:20

我的默认文件是:

# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
## 

server {
    #listen   80; ## listen for ipv4; this line is default and implied
    #listen   [::]:80 default_server ipv6only=on; ## listen for ipv6
    listen 80;
    server_name $domain_name;
    root /var/www;
    index index.html index.htm;
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;



    # Make site accessible from http://localhost/
    server_name localhost;

    location /

我希望你能帮助我:)。

5 个答案:

答案 0 :(得分:3)

正如@Thanh Nguyen Van已经回答的那样。必须以花括号打开和关闭location,然后为服务器结束另一个大括号

server {
    #listen   80; ## listen for ipv4; this line is default and implied
    #listen   [::]:80 default_server ipv6only=on; ## listen for ipv6

    listen 80;
    server_name $domain_name;
    root /var/www;
    index index.html index.htm;
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    # Make site accessible from http://localhost/
    server_name localhost;

    location / {

    }
}

答案 1 :(得分:2)

我有同样的问题。确认服务器块'{...}`中新添加的行末缺少;

确保花括号和;都到位。

答案 2 :(得分:1)

更正您的nginx文件,如下所示:

例如:

http {


       upstream api-app {
        .....................;   

        }
        ........................; 
        server {

              location / {
               ...................;
               proxy_set_header Host $host;
               proxy_cache_bypass $http_upgrade;

              }
        }

}

确保;位于行尾,{ ..}正确。

答案 3 :(得分:1)

我的问题是由于缺少;作为命令行参数之一的一部分。

作为参考,这是我的日志:

2020/08/11 17:19:25 [emerg] 1#1: unexpected end of parameter, expecting ";" in command line
nginx: [emerg] unexpected end of parameter, expecting ";" in command line

我的错误是我通过docker使用以下nginx来启动CMD

CMD ["nginx", "-g", "daemon off"]

我缺少尾随;的地方。我应该拥有的是:

CMD ["nginx", "-g", "daemon off;"]

以防万一,它可以帮助其他人。

答案 4 :(得分:0)

还要确保您没有意外的引号(单引号或双引号)。在我使用Docker并将值作为环境变量传递时花了我一段时间,所以它被错误地引用了。

因此,这将是不正确的位:

upstream backend {
    "server localhost:9000;"
}

这是正确的:

upstream backend {
    server localhost:9000;
}