2012-01-12 4 views
6

Сегодня я впервые установил сервер NGINX. Он работает очень хорошо, но у меня возникла небольшая проблема с конфигурацией сервера для совместной работы с node.js.Сценарий установки Nginx.conf и Node.js

Я хочу иметь следующую логику в nginx.conf.

  1. Каталога листинга быть отключен
  2. Все статические файлы (изображения, JS, все меньше и CSS), чтобы быть поданы от Nginx
  3. Всех запросов вида http://hostname/remote_data/??/??/ ?????? для маршрутизации на сервер node.js
  4. Все запросы, такие как http://hostname/??/??/ ?????? для маршрутизации на index.html, чтобы не дойти до узла.js

вопросительные знаки являются необязательными параметрами :) Возможно, существует от 0 до 7 параметров.

Прошу прощения, если этот сценарий установки очень прост, но я сражаюсь с ним почти 3 часа, и я застрял. Шаг 1 и 2 готовы - 10x к google.

С уважением Dan

+0

вы когда-нибудь найти ответ на этот вопрос? – jwerre

ответ

5

Вы должны проверить this answer. Из следующего принятого ответа у меня есть что-то вроде этого:

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

} 

Непрошеным.

+0

Спасибо за ответ. Мне удалось заставить его работать со следующей конфигурацией: Dan

+0

Это спасло мой день. Благодарю. – Aldo

2

мне удалось заставить его работать со следующим конф:

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; 
    } 
} 
Смежные вопросы