2011-04-22 12 views
8

Tengo este error en la versión Nginx 1.0.0configuración falle configuración nginx para tornadoweb, directiva desconocida "usuario"

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

si quito www-datos de usuario de los procesos de trabajo ha obtenido un error

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

tengo buscar en google pero todavía tengo nada favor ayuda

esta es mi tornado en sitio disponible

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; 
     } 
    } 

} 

Respuesta

16

Probablemente un poco de retraso, pero si alguien tropieza con esto aquí va una pista:

Probablemente config colisión, en/etc/nginx para un archivo .conf con dicha Directiva.

+0

Estaba accidentalmente incluyendo /etc/nginx/*.conf dentro de /etc/nginx/nginx.conf que causaba un bucle de inclusión. Y después de seguir tu consejo, encontré la recursión. ¡Gracias! – Robert

1

Solo quiero dar más detalles sobre la respuesta de Kjetil M., ya que eso funcionó para mí, pero no entendí lo que quería decir inmediatamente. No fue hasta después de muchos intentos que solucioné el problema y tuve un "oh, eso es lo que quiso decir".

Si su archivo /etc/nginx/nginx.conf y uno de los otros archivos de configuración/etc/nginx/sites-enabled/usa la misma directiva como "usuario", se encontrará con este error. Solo asegúrate de que solo 1 versión esté activa y comenta los otros.

4

También vale la pena comprobar si el nginx.conf tiene una línea "incluir". Es muy común y es una fuente de colisiones.

Por ejemplo.

[email protected]:~/$ cat /etc/nginx/nginx.conf | grep include 
include /etc/nginx/mime.types; 
include /etc/nginx/conf.d/.conf; 
include /etc/nginx/sites-enabled/; 

En este caso, una directiva en/etc/nginx/sites-enabled/entrará en conflicto con los contenidos de los nginx.conf. Asegúrese de no duplicar nada entre los archivos incluidos.

0

worker_ * directivas debe estar en la parte superior de la configuración, que los medios deben estar en /etc/nginx/nginx.conf

Ejemplo: Mis PRIMEROS líneas son:

user www-data; 
worker_processes 4; 
worker_connections 1024; 

si quiere saber cuántos trabajadores son los mejores para su servidor puede ejecutar este comando:

grep processor /proc/cpuinfo | wc -l 

esto le dice cuántos núcleos tiene, no tiene sentido tener más trabajadores que núcleos para sitios web.

si desea saber cuántas conexiones a sus trabajadores pueden manejar puede utilizar esto:

ulimit -n 

espero que ayude.

0

que estaba recibiendo el mismo error, pero cuando empecé a nginx con las opciones -c como

nginx -c conf.d/miaplicacion.conf

funcionó bien

0

Otra cosa, si ha creado el archivo de configuración en Windows y está utilizando en Linux, asegúrese de que los finales de línea son correctos ("\ r \ n" frente a "\ r ") y que el archivo no está almacenado como unicode.

Cuestiones relacionadas