2012-01-12 23 views
6

Hoy he instalado un servidor NGINX por primera vez. Funciona muy bien pero me enfrenta un pequeño problema con la configuración del servidor para trabajar junto con node.js.escenario de configuración Nginx.conf y Node.js

Quiero tener la siguiente lógica en el nginx.conf.

  1. Directory listing que se desactive
  2. Todos los archivos estáticos (imágenes, js, css y menos) que se sirven de los NGINX
  3. Todas las solicitudes como http://hostname/remote_data/??/??/ ?????? para enrutarse al servidor node.js
  4. Todas las solicitudes como http://hostname/??/??/ ?????? para enrutarse al index.html, para que no llegue al nodo.js

los signos de interrogación son parámetros opcionales :) Es posible tener de 0 a 7 parámetros.

Me disculpo si este escenario de configuración es muy fácil de hacer, pero estoy peleando con él casi 3 horas y estoy atascado. Los pasos 1 y 2 están listos: 10 veces para google.

Saludos Dan

+0

¿alguna vez encontrar la respuesta a esta pregunta? – jwerre

Respuesta

5

que debe salir this answer. De seguir la respuesta aceptada, obtuve algo como esto:

upstream node_app { 
    server localhost:8080; 
} 

server { 

    listen 80; 
    server_name FOO_HOSTNAME_GOES_HERE; 

    root /the/root/to/foo/document/root; 
    access_log /var/log/nginx/foo.access.log; 
    error_page 404 /404.html; 

    location /remote_data/ { 

    # Proxy request to node: 

    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-NginX-Proxy true; 

    proxy_pass http://node_app; 
    proxy_redirect off; 

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

    } 

    location/{ 
    try_files $uri $uri/index.html 404; 
    } 

} 

No comprobado.

+0

Gracias por la respuesta. He logrado que funcione con la siguiente configuración: Dan

+0

Esto me salvó la vida. Gracias. – Aldo

2

que he logrado hacer que funcione con la siguiente conf:

server { 
    root /var/www; 
    listen  80; 
    server_name _; 


    location ~* /remote_data { 
     # Proxy request to node: 

     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-NginX-Proxy true; 

     proxy_pass http://node_app; 
     proxy_redirect off; 
     break; 
    }  

    location/{ 
     index index.html index.htm; 

     location ~ \.(js|css|png|jpg|jpeg|gif|ico|html|less)$ { 
      expires max; 
      break; 
     } 

     rewrite ^/(.*)?$ /index.html?q=$1 last; 
    } 

    # serve static files directly 
    location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ { 
     access_log  off; 
     expires   30d; 
    } 
}