问题标签 [nginx-upstreams]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nginx - 来自 Tarantool + Nginx 的自定义响应
有实例:DMZ 中的 Nginx,使用 TNT_nginx_upstream_module + Tarantool Cartridge 作为 API 服务器。
当我得到良好结果的响应时 - 它是 200 OK + JSON 数据
如何设置其他响应?
- 400 错误请求
- 403 禁止
- 404 未找到
- 410 走了
- 500内部服务器错误
- 503服务不可用
nginx - nginx -- 连接到上游时没有实时上游
我的 CentOS 7 服务器上安装了 nginx 版本 1.19.3。我的 Rocketchat 应用程序在端口 3000、3001 和 3002 上工作。但是我的 nginx 服务器无法将代理路由到 Rocketchat。它给了我 502 Bad Gateway 错误。
这是我的 default.conf
这是我遇到的错误/var/log/nginx/rocketchat.access.log
我启用了 3000、3001、3002 并且可以通过本地 IP 地址访问 RocketChat。
我已经尝试了通过 stackoverfollow 找到的所有解决方案,但它不起作用。有人可能是什么问题吗?
nginx - 如何在 nginx 中使用环境变量来选择条件上游配置
我有一个环境变量,我想在启动 nginx 服务时设置它。假设环境变量NGINX_SERVICE
可以具有值 DEV 或 QA。我想有条件地设置上游配置。
即,逻辑上是这样的。
知道如何做到这一点吗?
nginx - NGINX:使用上游服务器名称
我在 Ubuntu 上运行 nginx/1.19.6。
我正在努力让上游模块在不返回 404 的情况下工作。
我的 *.conf 文件位于 /etc/nginx/conf.d/
文件 factory_upstream.conf:
文件 factory_service.conf:
我将错误日志记录设置为调试,但在重新加载配置并尝试调用后,错误日志中没有新记录。
access-factory.log 确实记录了请求:
为了帮助调试,我缓存了 404 错误,“proxy_cache_valid any 5m;” 在上面的示例中注释掉:当我使用上游名称时,缓存文件包含以下内容:
密钥包含名称“factoryserver”,我不知道这是否重要。可以?服务器版本和我输入命令 nginx -v 看到的不一样,即: nginx version: nginx/1.19.6 缓存文件和命令行中的版本差异是否说明了什么?
当我切换回 proxy_pass 中的文字服务器名称时,我会收到一个带有请求数据的 200 响应。缓存文件中的 Key 然后包含文字上游服务器名称。
我将有多个上游服务器,每个都提供不同的服务。该配置将部署到多个工厂,每个工厂都有自己的上游服务器。我希望部署团队只需要更新 *_upstream.conf 文件,并将 *_service.conf 文件从部署站点到部署站点保持静态。
- factory_upstream.conf
- product_upstream.conf
- shipping_upstream.conf
- abc123_upstream.conf
为什么在使用命名上游服务器时会收到 404?
nginx - 具有 https 授权的 nginx 上游服务器
我的配置有问题。
如果我添加上游 HTTPS 服务器授权不起作用。
工作配置
如果我更改 proxy_pass https://s1test.com/; 到我的上游 proxy_pass https://facturatest/;授权无效
ruby-on-rails - Rails + Nginx - 为什么我应该对多个节点使用 fail_timeout=0?
在 nginx 示例配置文件中https://github.com/defunkt/unicorn/blob/master/examples/nginx.conf 你可能会看到:
据我了解,504 Bad Request
如果其中一个请求被超时终止或返回被认为是错误请求集的内容(http://nginx.org/en/docs /http/ngx_http_proxy_module.html#proxy_next_upstream)。
所以在upstream
块中,他们有:
我在块中使用least_conn
指令。upstream
因此,如果其中一只独角兽倒下,它会很快回答,例如 500 错误。正因为如此,所有请求的 99% 都将发送到该节点。换句话说,如果一个节点宕机 - 整个应用程序都宕机了。
我正在考虑尝试这样的事情:
根据 nginx 文档(http://nginx.org/en/docs/http/ngx_http_upstream_module.html#server),这意味着其中一台服务器将在接下来的 10 秒内被标记为 DOWN,它将在 10 秒内发送 5 个错误答案第二。我没有看到任何缺陷。你怎么看?我几乎找不到任何 fail_timeout 不为 0 的示例。
nginx - Nginx 负载均衡 HTTPs 集群
我想使用 Nginx 作为 Consul 集群的负载均衡器。Consul 集群只能通过 TLS 访问。
在这里,我尝试反向代理单个 Consul 服务器以检查 TLS 证书是否有效
这个配置工作正常,我可以用
现在我试着做一个这样的上游:
调用与以前相同的 curl 命令时,出现以下错误:
然后我试过这样:
但也没有运气;
有任何想法吗?有人可以帮我一个吗?
php - 为多个 php-fpm 容器设置 nginx 上游 - recv() 失败
我是 nginx 新手。我正在尝试为我的后端和前端应用程序(都是 Symfony 应用程序)设置具有 2 个不同上游的 nginx 这是我的 docker-compose 文件
z-backend.conf:
z-frontend.conf
我的 nginx 配置
一切都在运行,似乎正在运行。我可以访问这两个站点并且 php-fpm 正在工作。除了资产似乎无法为两个站点加载。
我是否忘记了什么或在 nginx 中有错误的参数?
nginx - 如果客户端在发送数据后立即发送 TCP FIN,NGINX 不会将请求代理到上游
我有客户端(10.1.30.29),它将 HTTP 请求发送到 NGINX 反向代理(端口 80、10.1.30.11-127.0.0.1)后面的服务器(端口 6500、10.1.30.11-127.0.0.1)。大多数时候(大约 5 个,共 6 个),服务器没有收到请求。用wireshark深入研究,我发现客户端在发送数据之后和NGINX响应数据的TCP ACK 之前发送TCP FIN ACK数据包:
从 NGINX 到服务器的数据传输开始,但在任何数据传输之前结束。
与第一种情况的主要区别在于 NGINX 设法在客户端发送 FIN ACK 之前发送数据 ACK。
在这两种情况下,NIGNX 中的访问日志都包含有关请求的记录;错误日志为空。
不幸的是,我几乎无法影响客户端的行为,但我知道,即使客户端错误地关闭了 TCP 传输,其他 HTTP 服务器实现也可以处理请求数据。问题是是否有任何方法可以强制 NGINX 忽略这种不正确的客户端行为并始终代理请求数据?
PS 已经尝试过postpone_output
NGINX 选项 - 不走运。
nginx - Nginx proxy_pass 到错误的上游
在我的服务器块中,我已经配置了这个位置
一切都如我所愿。但是今天下午我在 13 秒内收到了 1,553 个错误。下面是一个示例错误日志:
首先,我认为我的服务中断了。但是日志显示nginx将请求传递给了localhost
other than localhost:8085
,这很奇怪。
我还查看了操作日志,当时没有人更改 nginx 配置文件。
我想知道为什么 Nginx proxy_pass 到错误的上游,为什么这件事发生了?
任何帮助将不胜感激!