Ошибка в файле конфигурации nginx

Я следую руководству по Flask, обслуживающему nginx в Digital Ocean. После того, как я создал следующий файл конфигурации для nginx в / etc / sites-available / mysite:

server {
    listen 80;
    server_name your_domain www.your_domain;

    location / {
        include uwsgi_params;
        uwsgi_pass unix:/home/user/myproject/myproject.sock;
    }
}

(очевидно, заменил домен на мой домен и путь к сокету с моим сокетом), когда я запускаю sudo nginx -t -c / etc / nginx / sites-available / mysite , я получаю

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

Я дважды проверил, правильно ли скопировал код. Что может пойти не так?

UPD:

Если я запускаю только sudo nginx -t, я не получаю никаких ошибок, но sudo systemctl restart nginx не работает с:

Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.

Команда ] systemctl status nginx.service возвращает:

 nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2018-11-27 11:33:49 UTC; 39s ago
     Docs: man:nginx(8)
  Process: 8485 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
  Process: 8475 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)

journalctl -xe не содержит записей, относящихся ко времени.

1
задан 27 November 2018 в 13:40
2 ответа

Файл конфигурации nginx содержит блок http , который будет включать все файлы из / etc / nginx / sites-enabled / . В руководстве предлагается создать файл в / etc / nginx / sites-available / , а затем связать его с / etc / nginx / sites-enabled / .

Далее он говорит вам протестировать полную конфигурацию с помощью sudo nginx -t , в то время как вы проверяете только конфигурацию вашего файла. Однако ваш файл - это лишь небольшой фрагмент полной конфигурации nginx, необходимой для работы nginx.

Убедитесь, что вы создали softlink, а затем протестируйте без указания файла конфигурации, чтобы он проверил доступ к полному файлу конфигурации из /etc/nginx.conf (или аналогичный).

2
ответ дан 3 December 2019 в 20:11

Ошибка находится в другом файле, который nginx прочитал непосредственно перед этим. Проверьте другие файлы на сайтах с поддержкой на отсутствие } .

0
ответ дан 3 December 2019 в 20:11

Теги

Похожие вопросы