node.js - 使用 nginx 处理另一台服务器产生的错误

标签 node.js http nginx

我有一个 nginx 服务器,它本身处理一些请求,并使用以下几行将其余请求传递到 Node.JS 服务器:

proxy_pass http://localhost:8000;
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;

nginx 和node.js 都会生成自己的http 页面,这些页面应该是相同的(对于用户来说,来自nginx 的404 应该与来自node.js 的404 相同)。

我希望 nginx 检查 Node.js 生成的响应代码,如果产生错误,则返回到它自己的错误页面。这可能或明智吗?

1. Nginx receives HTTP request
2. HTTP request passed to Node.JS
3. Node.JS responds with 404 error
4. Nginx responds with 404 error

最佳答案

添加行

proxy_intercept_errors on;

添加到location block 会导致远程服务器产生的错误被nginx拦截。

关于node.js - 使用 nginx 处理另一台服务器产生的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28114664/

相关文章:

javascript - 使所需的依赖项可以从包外部访问

http - Karma 测试中出现错误 : No provider for HttpService!

linux - 程序接收信号SIGIO

ssl - 重定向 https ://www to https://

java - 下载文件的协议(protocol)

wordpress - 是否有一个易于安装的自托管 wordpress 解决方案(可能有多个站点)

node.js - coffeescript 编译器的奇怪行为

node.js - 如何在 Windows IoT 上不使用调试器启动 "Basic Node.js Express 4 Application (Universal Windows)"?

node.js - NPM 安装与 package.json 不同的版本

c - 为什么我的 http 服务器打印出相同的字节? (C)