ошибка конфигурации nginx для tornadoweb, неизвестная директива "пользователь" - PullRequest
8 голосов
/ 22 апреля 2011

У меня эта ошибка в nginx версии 1.0.0

nginx: [emerg] unknown directive "user" in /etc/nginx/sites-enabled/
tornado:1

, если я удаляю пользовательские www-данные, рабочие процессы получили ошибку

nginx: [emerg] unknown directive "worker_processes" in /etc/nginx/
sites-enabled/tornado:1

У меня есть поискGoogle, но все еще не получил ничего, пожалуйста, помогите

это мой торнадо на сайте доступны

user www-data www-data;
worker_processes 1;

error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

events {
    worker_connections 1024;
    use epoll;

}

http {
    # Enumerate all the Tornado servers here
    upstream frontends {
        server 127.0.0.1:8081;
        server 127.0.0.1:8082;
        server 127.0.0.1:8083;
        server 127.0.0.1:8084;
    }

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

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

    keepalive_timeout 65;
    proxy_read_timeout 200;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    gzip on;
    gzip_min_length 1000;
    gzip_proxied any;
    gzip_types text/plain text/html text/css text/xml
               application/x-javascript application/xml
               application/atom+xml text/javascript;

    # Only retry if there was a communication error, not a timeout
    # on the Tornado server (to avoid propagating "queries of death"
    # to all frontends)
    proxy_next_upstream error;

    server {
        listen 8080;

        # Allow file uploads
        client_max_body_size 50M;

        location ^~ /static/ {
            root /var/www;
            if ($query_string) {
                expires max;
            }
        }
        location = /favicon.ico {
            rewrite (.*) /static/favicon.ico;
        }
        location = /robots.txt {
            rewrite (.*) /static/robots.txt;
        }

        location / {
            proxy_pass_header Server;
            proxy_set_header Host $http_host;
            proxy_redirect false;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Scheme $scheme;
            proxy_pass http://frontends;
        }
    }

}

Ответы [ 6 ]

16 голосов
/ 20 сентября 2011

Возможно, немного запоздало, но если кто-то наткнется на это, вот подсказка:

Возможно, сконфигурирован конфликт, проверьте в / etc / nginx файл .conf с той же директивой.

4 голосов
/ 06 апреля 2012

Также стоит проверить, есть ли в nginx.conf строка «include».Это очень распространено и является источником столкновений.

Например.

evan@host:~/$ cat /etc/nginx/nginx.conf | grep include
 include /etc/nginx/mime.types;
 include /etc/nginx/conf.d/.conf;
 include /etc/nginx/sites-enabled/;

В этом случае директива в / etc / nginx / sites-enabled / конфликтует с содержимым nginx.conf.Убедитесь, что вы ничего не перепутали между включенными файлами.

1 голос
/ 22 февраля 2012

Просто хочу уточнить ответ Кжетила М., так как это сработало для меня, но я не понял, что он имеет в виду. До тех пор, пока после многих попыток я не исправил проблему, у меня не получилось «о, вот что он имел в виду».

Если ваш файл /etc/nginx/nginx.conf и один из других конфигурационных файлов / etc / nginx / sites-enabled / используют ту же директиву, например «user», вы столкнетесь с этой ошибкой. Просто убедитесь, что активна только 1 версия, и закомментируйте остальные.

0 голосов
/ 16 января 2016

Другое дело, если вы создали файл конфигурации в Windows и используете его в Linux, убедитесь, что окончания строк правильные ("\ r \ n" против "\ r") и что файл не являетсяхранится как Unicode.

0 голосов
/ 21 ноября 2014

Я получаю ту же ошибку, но когда я запустил nginx с опциями -c как

nginx -c conf.d / myapp.conf

, все заработало

0 голосов
/ 13 августа 2014
Директивы

worker_ * должны быть в верхней части конфигурации, это означает, что они должны находиться в /etc/nginx/nginx.conf

Пример: Мои первые строки:

user www-data;
worker_processes 4;
worker_connections 1024;

если вы хотите узнать, сколько рабочих лучше всего подходит для вашего сервера, вы можете выполнить эту команду:

grep processor /proc/cpuinfo | wc -l

это говорит о том, сколько у вас ядер, нет смысла иметь больше работников, чем ядер для веб-сайтов.

если вы хотите знать, сколько соединений могут обрабатывать ваши работники, вы можете использовать это:

ulimit -n

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...