【问题标题】:Nginx.conf and Node.js setup scenarioNginx.conf 和 Node.js 设置场景
【发布时间】:2012-01-13 15:01:59
【问题描述】:

今天我第一次安装了 NGINX 服务器。它工作得很好,但我在配置服务器以与 node.js 一起工作时遇到了一个小问题。

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

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

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

如果此设置方案很容易完成,我深表歉意,但我已经坚持了将近 3 个小时,但我被卡住了。第 1 步和第 2 步已准备就绪 - 谷歌的 10 倍。

问候 丹

【问题讨论】:

  • 你找到这个问题的答案了吗?

标签: node.js nginx


【解决方案1】:

您应该查看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;
  }

}

虽然未经测试。

【讨论】:

  • 感谢您的回复。我设法使它与以下配置一起工作:
  • 这拯救了我的一天。谢谢。
【解决方案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;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多