簡體   English   中英

如何在子文件夾/子路徑中運行 Express 應用程序

[英]How to run an Express application in a subfolder/subpath

所以,我有一個非常簡單的 Express.js 應用程序。 我的入口點server.js復制如下。

const express = require('express');
const app = express();


app.get('/', (req, res) => {
    res.status(200).send({ "message": "Welcome to the application. Express JS is outputting this JSON. " });
});

app.get('/all', (req, res) => {
    res.status(200).send({ "message": "All the things. " });
});


app.listen(3000, () => {
    console.log("Server is listening on port 3000");
});

當我使用命令node server.js運行該程序時,它工作正常,我可以在http://localhost:3000訪問該應用程序。 同樣,當我將它部署到 LAN 服務器時,我可以訪問它的 IP 並訪問像http://192.168.100.105:3000這樣的應用程序。

現在,如果我希望應用程序在http://192.168.100.105/app1運行,該怎么辦? 一種方法是將 Express 應用程序應用到在端口80上運行並重新配置所有路由以使用app1作為新的基礎 URL,但我沒有特權(或不能)覆蓋在默認值上運行的應用程序港口。 那么,有沒有其他方法可以在不在端口80上運行的情況下實現相同的目標?

有兩種方法:

  • 讓你想訪問的軟件在 80 端口上實際監聽 80 端口(你已經排除了這個)
  • 其他一些軟件在端口 80 上偵聽並將請求中繼到您的軟件

后者的典型方法是使用配置為充當反向代理的 HTTP 服務器(例如 nginx)。 它可以配置為 map 一個特定的路徑而不是一切。

您還可以使用類似 iptables 的端口轉發(這有效地使軟件偵聽端口 80 及其真實端口)。


這些選項中的任何一個都需要足夠的權限,因此,鑒於您暗示的限制,這對您來說可能是不可能的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM