Nginx.conf和Node.js设置场景

今天我第一次安装了NGINX服务器。 它工作得很好,但我面临一个小的问题与configuration服务器与node.js一起工作。

我想在nginx.conf中有以下逻辑。

  1. 目录列表被禁用
  2. 所有的静态文件(图像,js,less和css)将从NGINX提供
  3. 所有的请求,如http:// hostname / remote_data / ?? / ?? / ?????? 被路由到node.js服务器
  4. 所有的请求,如http:// hostname / ?? / ?? / ?????? 被路由到index.html,所以不能到达node.js

问号是可选参数:)可能有0到7个参数。

我很抱歉,如果这种设置scheme是很容易做到的,但我与它打了差不多3个小时,我卡住了。 第一步和第二步准备就绪 – 谷歌10倍。

问候Dan

你应该看看这个答案 。 从接受的答案我有这样的事情:

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

未经测试,但。

我已经设法使其与以下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; } }