如何使用 Express 和 NGINX 设置路由?

2024-03-04

我正在尝试使用 NGINX 作为反向代理来配置 Express 服务器。 NGINX 提供静态文件,Express 提供动态内容。

问题:正常的根链接有效 (website.com),但是当我导航到 (website.com/api) 时,我从 NGINX 收到 404


这是我的 server.js :

var express = require("express");
var app = express();
var server = app.listen(process.env.PORT || 5000);

console.log("Server Running");

app.get("/",function(req,res){res.send("HOME PAGE")});

app.get("/api", function(req, res) {
    res.send('API PAGE');
});

这是我的 NGINX 配置文件:

server {
    listen 80 default_server;
    listen [::]:80 default_server;


    server_name website.com www.website.com;

    location ~ ^/(assets/|images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) {
    root /home/foobar/public; #this is where my static files reside
    access_log off;
    expires 24h;
    }

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_redirect off;
        proxy_pass http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;

        try_files $uri $uri/ =404;
    }
}

尝试删除这一行:

try_files $uri $uri/ =404;

使用此指令,nginx 尝试提供静态文件(或目录),并返回404如果没有这样的文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Express 和 NGINX 设置路由? 的相关文章

  • 如何将子集合添加到 Firestore 中的文档? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 没有关于如何在Firestore中的文档中添加子集合的文档 那么如何使用Web应用程序添加子集合 我尝试了这个但没有成功 如何使用代码
  • readFile() 和 readFileSync() 之间的区别

    以下代码将index html 的内容 仅包含文本hello world 输出到浏览器 然而 当我更换readFile with readFileSync 请求超时 我缺少什么 是否需要不同类型的缓冲区 我使用的是node 0 61 和ex
  • 使用 Sequelize 计算关联条目数

    我有两张桌子 locations and sensors 每个条目在sensors有一个外键指向locations 使用 Sequelize 如何获取所有条目locations以及条目总数sensors与每个条目相关联locations R
  • Nodejs Base64 中的读取文件

    我正在尝试从客户端读取以 base64 编码的图像 如何使用nodejs进行阅读 My code add to buffer base64 image var encondedImage new Buffer image name base
  • nginx 匹配位置中的特定单词

    我在匹配 nginx request body 变量中的特定单词时遇到问题 如果正文请求中有特殊单词 我想代理传递 所以我的方法是这样的 location php if request body proxy pass http test p
  • 枚举nodejs中的系统驱动器

    有没有办法检索计算机上所有逻辑驱动器的驱动器名称 我查看了 fs api 但从那里我只能枚举给定目录的文件和目录 我不确定 驱动器名称 是什么意思 如果您的意思是以下形式的驱动器 PhysicalDriveN 我遇到了同样的问题并实现了这个
  • 如何在 NodeJS 中使用 PhantomJS 模拟鼠标悬停或在页面上运行 JS 功能

    NodeJS PhantomJS 使用 Cheerio 进行内容解析 需要解析包含动态加载的div 提示 的网页 该事件可以在许多表 td 上 这是一个示例 当我将鼠标悬停在特定的 td 上时 我看到这个带有数据的橙色块 它动态加载了函数
  • 如何在运行 NGINX Docker 容器的 AWS EC2 上启用 HTTPS?

    我在 AWS 上有一个运行 Amazon Linux 2 的 EC2 实例 在上面 我安装了 Git docker 和 docker compose 完成后 我克隆了我的存储库并运行docker compose up让我的生产环境启动 我访
  • socket.io 服务器的 Node.js 客户端

    我有一个正在运行的 socket io 服务器和一个带有 socket io js 客户端的匹配网页 一切正常 但是 我想知道是否可以在另一台机器上运行一个单独的 node js 应用程序 该应用程序将充当客户端并连接到提到的 socket
  • 在 ExpressJS 中为特定路由链接多个中间件

    我只想验证一些东西 但无法在 Express 文档或在线中找到与此相关的任何内容 尽管我知道这是一个功能 我可以测试一下 但我真的没有一个好的模板 并且希望听到社区的意见 如果我像这样在express中定义一条路线 app get func
  • npm install -D sass-loader node-sass Vue.js 2021

    您好 问题是为 Vue js 设置 SASS 我跑 Node js 15 7 0 Vue js vue cli 4 5 11 这是我在运行此命令时在控制台中遇到的错误 npm install D sass loader 节点 sass np
  • JavaScript 中的 Promise.all:如何获取所有 Promise 的解析值?

    我编写了以下node js文件 var csv require csv parser var fs require fs var Promise require bluebird var filename devices csv var d
  • 嵌套对象的 AJV 模式验证

    函数返回的对象看起来像这样 answer vehicle type 1 message Car model VW color red 答案 对象始终存在 其他字段基于 vehicle type E g 如果vehicle type 1 则有
  • 托管 React 应用程序和 Express 服务器 cpanel

    我是托管新手 如果有人可以非常详细地解释 这将对我有很大帮助 我有以下问题 我有前端使用react app和后端使用expressjs and mysql 我的计算机中有一个可以运行的简单应用程序 我使用本地主机启动后端和前端 它们工作完美
  • 我可以在 Nginx Conf 中添加多少个服务器块

    知道我可以在 Nginx 配置中添加多少个服务器块吗 我需要将它用于具有多个子域的反向代理 每个客户端一个子域 它能成功支持 10 000 个服务器块吗 有没有相关的基准研究 这实际上并不是一个你有多少人的问题can但你有多少 能够妥善处理
  • 如何使用nodejs/aws-sdk将base64编码的pdf直接上传到s3?

    我正在尝试使用以下代码将 base64 编码的 pdf 上传到 S3 而无需将文件写入文件系统 const AWS require aws sdk exports putBase64 async object name buffer buc
  • dotnet 核心并行或同时构建

    In this https github com gatimus DotnetParallelBuild解决方案我有2个应用程序 AppA AppB共享类库Shared 我尝试过自动化这些并行的构建 运行电源外壳 https github
  • 节点未被识别为内部或外部命令,但位于 PATH 中

    尽管我遵循了以下建议 使用phonegap cordova时 node 不被识别为内部或外部命令 可操作程序或批处理文件 https stackoverflow com questions 23412938 node is not reco
  • Node 和 General 中的 MVC:模型如何与视图绑定?

    我从 node js 开始 正在制作一个简单的 MVC 框架 到目前为止 我已经有一个前端控制器 或 调度程序 如果你愿意的话 可以工作 路由通过调度程序配置模块进行 如图所示 我的问题在最后 紧接代码之后 另外 这是学习node的练习 请
  • 如何验证最终用户经过身份验证的令牌(使用 Firebase 身份验证)来调用 google cloud run 端点?

    请帮助使用 firebase 身份验证在云运行中进行最终用户身份验证 简短的介绍 我从 firebase 函数提交 Authorization Bearer idToken 标头 并使用电子邮件 密码 firebase 用户进行身份验证的

随机推荐

  • 使用 GraphQL 机制,但返回 CSV

    普通的 REST API 可能会让您以不同的格式请求相同的数据 并使用不同的Accept标头 例如application json or text html or a text csv格式化的响应 但是 如果您使用 GraphQL 则 JS
  • OpenGL ES 1.1:如何在不损失亮度的情况下更改纹理颜色?

    我希望能够在代码中更改粒子的颜色 因此可以使用任何颜色 所以我只有一种基本上具有亮度的纹理 我一直在使用glColor4f 1f 0f 0f 1f 应用颜色 我尝试过的每个 Blendfunc 都接近工作 最终都像下面的最后一张图片一样 我
  • 向下滚动到div+一定的边距

    我正在使用此脚本滚动到页面上的某个 div button click function html body animate scrollTop scrolltothis offset top 500 工作完美 这会将页面滚动到 scroll
  • Unix C 套接字服务器不接受连接

    事情是这样的 我正在用 C 语言 使用 unix 系统调用 编写一个简单的 tcp 套接字服务器 但我无法接受连接 据我所知 我很好地完成了服务器初始化 但是当我尝试连接到我打印出来的端口 参见下面的代码 时 它拒绝了 就好像什么都没有一样
  • CKEDITOR:如何转换所有 html 实体

    这是清单 http www elizabethcastro com html extras entities html http www elizabethcastro com html extras entities html我要么想启用
  • 运行混淆代码时是否会影响性能? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 All 我建议在我的组织的标准构建过程中添加代码混淆 人们提出的问题之一是 与运行未混淆的代码相比 运行混淆的代码是否会对性能产生影响
  • C#:使用 Winforms 关闭 SerialPort 的正确方法

    我有一个应用程序 我可以从串行端口读取数据 一切正常 直到我关闭该应用程序 当我单击 X 时 应用程序只是挂起 UI 无响应 我从 DataReceived 事件处理程序中的端口读取数据 并在 FormClosed 发生时关闭端口 priv
  • 我是否应该始终在 ASP.NET Core API 控制器中使用 async/await [重复]

    这个问题在这里已经有答案了 作为一个例子 我有一个ASP NET Core API controller从服务中获取一些数据并2实现控制器方法的可能方法 使用异步 等待 HttpGet public async Task
  • Android 布局与 sw600dp 和 sw720dp

    我想支持600dp我的 Android 应用程序中的屏幕 所以我使用了该布局layout sw600dp 但我无法通过应用程序获得确切的布局 I got 800 X 1280屏幕尺寸与layout sw720dp但布局有点差720 X 12
  • 将视图控制器分配给prepareForSegue中的变量时,Swift EXC_BREAKPOINT

    当尝试使用我的destinationViewController 执行变量赋值时 我收到错误 错误信息是这样的 线程 1 EXC BREAKPOINT 代码 EXC I386 BPT 子代码 0x0 这在我的prepareForSegue函
  • 推荐?对于我们特定的 HTML -> PDF 项目

    我有一个问题 我从谷歌搜索中看到这个问题已经被详细讨论过 但我想知道你会根据我们的特殊需求推荐什么 我希望在一周的工作后发现我选择了错误的工具之前走在正确的轨道上 一个可以工作的工具 但其特殊性最终会在我们的项目中排除它 我已经在 Stac
  • 按名称(而不是 ID)直接链接到 App Store 中的评论页面

    我想知道如何直接链接到我的 iOS 应用程序的评论页面 而不知道应用程序 ID 只知道名称 我知道可以通过使用链接到没有应用程序 ID 的应用程序 itms apps itunes com apps APPNAME 您可以链接到评论页面 但
  • 为什么 lambda 函数默认删除推导的返回类型引用?

    在 C 14 中 为什么具有推导返回类型的 lambda 函数默认会删除返回类型中的引用 IIUC 因为具有推导返回类型 没有显式尾随返回类型 的 C 14 lambda 函数的返回类型为auto 它会删除引用 除其他外 为什么做出这个决定
  • Android ZBar 异常仅适用于 Jenkins 构建

    我有一个带有 QR 扫描活动的 Android 项目 我为此使用 ZBar 库 http sourceforge net projects zbar files AndroidSDK http sourceforge net project
  • 将空字符串输入转换为浮点数

    我编写了这样的代码来查找用户输入的数字的算术平均值 但由于某种原因 程序最终无法将字符串转换为浮点数 我应该改变什么 print I m going to find the arithmetical mean n jnr 0 sum 0 n
  • 检测媒体扫描仪是否在 Android 上运行

    有没有办法检测 MediaScanner 现在是否正在运行 例如 如果 mediascanner 正在运行 线程将休眠 200 milis 谢谢 使用下面的代码 public static boolean isMediaScannerSca
  • 是否有与背景大小等效的内容:图像元素的 cover 和 contains ?

    我有一个包含许多页面和不同背景图片的网站 我通过 CSS 显示它们 例如 body page 8 background url img pic jpg no repeat scroll center top 000 background s
  • 如何在 javafx 中的 FlowPane 周围制作简单的实心边框

    我正在 javafx 中构建一个简单的应用程序 并且我希望能够向 FlowPane 添加边框 我在java方面比javafx有更多的经验 所以我试图找到相当于 setBorder BorderFactory createEmptyBorde
  • 如何在 jQuery 中选择一系列元素

    div a a a a a a a a a a a a div 如果你想选择第二 第三 第四a上面例子中的标签 你会怎么做 我唯一能想到的是 myDiv a eq 1 myDiv a eq 2 myDiv a eq 3 但这看起来并不是非常
  • 如何使用 Express 和 NGINX 设置路由?

    我正在尝试使用 NGINX 作为反向代理来配置 Express 服务器 NGINX 提供静态文件 Express 提供动态内容 问题 正常的根链接有效 website com 但是当我导航到 website com api 时 我从 NGI