2012-01-12 37 views
6

Hôm nay tôi đã cài đặt một máy chủ NGINX lần đầu tiên. Nó hoạt động rất tốt nhưng tôi phải đối mặt với một vấn đề nhỏ với cấu hình máy chủ để làm việc cùng với node.js.Nginx.conf và kịch bản thiết lập Node.js

Tôi muốn có logic sau trong nginx.conf.

  1. Directory Listing bị vô hiệu
  2. Tất cả các file tĩnh (hình ảnh, js, ít hơn và css) để được phục vụ từ Nginx
  3. Mọi yêu cầu như http://hostname/remote_data/??/??/ ?????? được chuyển đến máy chủ node.js
  4. Tất cả các yêu cầu như http://hostname/??/??/ ?????? được định tuyến đến index.html, do đó, không được truy cập vào node.js

dấu hỏi là các tham số tùy chọn :) Có thể có từ 0 đến 7 tham số.

Tôi xin lỗi nếu kịch bản thiết lập này là rất dễ dàng để được thực hiện, nhưng tôi đang chiến đấu với nó gần 3 giờ và tôi bị mắc kẹt. Bước 1 và 2 đã sẵn sàng - 10x tới google.

Trân Dan

+0

bạn đã bao giờ tìm thấy câu trả lời cho câu hỏi này? – jwerre

Trả lời

5

Bạn nên kiểm tra this answer. Từ sau câu trả lời được chấp nhận, tôi có nội dung như sau:

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

} 

Chưa được kiểm tra.

+0

Cảm ơn bạn đã phản hồi. Tôi đã quản lý để làm cho nó hoạt động với cấu hình sau: Dan

+0

Điều này đã lưu ngày của tôi. Cảm ơn. – Aldo

2

tôi đã quản lý để làm cho nó làm việc với các conf sau:

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; 
    } 
} 
Các vấn đề liên quan