【问题标题】:Run NodeJs express app on base url with nginx app使用 nginx 应用在基本 url 上运行 NodeJs express 应用
【发布时间】:2015-12-03 03:50:54
【问题描述】:

场景

我有一个 php 应用程序。这个应用程序在abc.com 上运行。它使用 nginx 服务器。 现在我创建了一个新应用程序,一个 NodeJS express 应用程序。这个我需要部署在abc.com/nodeApp(不是abc.com/nodeApp/

我做了什么

abc.com的nginx配置中,我写了一个配置来代理到Node服务器的流量。这是 nginx 配置。

  location = /nodeApp {
    proxy_pass http://$nodeApp;
    include proxy_params;
  }

  location /nodeApp/ {
    # remove all trailing slash
    rewrite ^/(.*)/$ /$1 permanent;
    proxy_pass http://$nodeApp;
    include proxy_params;
  } 

问题

现在,点击abc.com/nodeApp,它会将我带到 nodeJs 服务器。但是服务器给 CANNOT GET /nodeApp

所以 nodeJs 服务器期待/ 上的流量,而不是/nodeApp 上的流量。 我怎样才能让服务器有一个基本的网址。这是我的 nodeJs 文件。

var express = require("express");
var app = express();
var config = require('./config/config');

app.use(express.static(__dirname + '/build'));

var port = process.env.PORT || config.serverPort;
app.listen(port, function() {
  console.log("Listening on " + port);
});

【问题讨论】:

    标签: node.js express nginx proxy


    【解决方案1】:

    通过在proxy_path 指令中添加尾随/,您会将/nodeapp 映射到上游/

    location = /nodeApp {
        proxy_pass http://$nodeApp/;
        include proxy_params;
    }
    

    详情请见this document

    【讨论】:

      猜你喜欢
      • 2014-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-09
      • 2013-01-29
      • 1970-01-01
      • 2019-05-29
      • 1970-01-01
      相关资源
      最近更新 更多