gpt4 book ai didi

node.js - 使用 nginx 应用程序在基本 url 上运行 NodeJs Express 应用程序

转载 作者:太空宇宙 更新时间:2023-11-04 02:19:45 24 4
gpt4 key购买 nike

场景

我有一个 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 服务器。但服务器正在给
无法获取/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);
});

最佳答案

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

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

参见this document了解详情。

关于node.js - 使用 nginx 应用程序在基本 url 上运行 NodeJs Express 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34057551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com