nginx неожиданный конец файла, ожидание ; или } в /etc/nginx/sites-enabled/default:20 поверх Raspbian

Я новичок в nginx и Raspberry.

Я установил nginx с помощью

sudo apt-получить установку

И все было нормально на тот момент. Проблема возникла, когда я попытался перезапустить 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 /

Я надеюсь, что вы можете помочь мне :)


person Rafael Barón Castro    schedule 10.05.2016    source источник
comment
Вы можете показать 20-ю строку в файле по умолчанию?   -  person Thanh Nguyen Van    schedule 10.05.2016
comment
Это точно строка ниже: location / Я пытался написать «}», но это не сработало. На самом деле я не модифицировал этот файл :/   -  person Rafael Barón Castro    schedule 10.05.2016


Ответы (5)


как уже ответил @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 / {

    }
}
person manoj prashant k    schedule 10.05.2016

Я была такая же проблема. Подтверждено отсутствие ; в конце новой добавленной строки внутри серверного блока {...} .

Убедитесь, что фигурные скобки и ; на месте.

person jningthou    schedule 30.07.2018
comment
Спасибо. Я просто пропустил ";" в конце новой добавленной строки внутри блока местоположения {}. - person shaojun lyu; 19.12.2019

Моя проблема была связана с отсутствием ; как части одного из аргументов командной строки.

Для справки вот мои логи:

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

Моя ошибка заключалась в том, что я начал nginx со следующим CMD через докер:

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

Где мне не хватало конечного ;. Что у меня должно было быть:

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

На всякий случай, это поможет кому-то еще.

person Robert Seaman    schedule 11.08.2020
comment
Гах, так легко промахнуться. Перерыл свой конфиг и не нашел. Это было именно так. - person Nucleon; 20.04.2021

Также убедитесь, что у вас нет неожиданных кавычек (одинарных или двойных). Мне потребовалось некоторое время, чтобы понять, когда я использовал Docker и передал значение как env var, поэтому оно было ошибочно указано в кавычках.

Итак, это будет неправильный бит:

upstream backend {
    "server localhost:9000;"
}

Это правильный:

upstream backend {
    server localhost:9000;
}
person Vladimir Salin    schedule 22.08.2019

Исправьте файл nginx, как показано ниже:

Например:

http {


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

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

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

              }
        }

}

Убедитесь, что ; стоит в конце строки, а { ..} правильно.

person Thanh Nguyen Van    schedule 10.05.2016