问题标签 [nginx-reverse-proxy]
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 - 按原样返回传入的标头 | Nginx
我们有一个下游应用程序,它在点击 nginx 之前为来自浏览器的请求设置一些自定义标头。nginx 只提供静态内容。即浏览器>>应用A>>nginx
要求是 nginx 应该能够将它接收到的所有标头原样返回给下游服务器,下游服务器会将其返回给浏览器。默认情况下,它只返回通用标头(cookie 等,到期等),而不重新调整下游服务器发送的自定义标头。
例如,有一个名称为 appnumber 的标头,nginx 接收到的值为 app01。我尝试使用以下规则显式设置它以手动设置它(如果存在),但没有帮助,因为它抛出了不允许使用变量的错误。
有人可以在这里指导我吗?
nginx - 生产环境中的 Nginx(仅限 HTTP)反向代理设置
我正在玩Nginx
,我成功地设置了一个简单的(HTTP
仅限现在)反向代理。作为一个新手,我想知道我需要修改什么来使这个生产准备好。这导致我提出以下问题:
- 有没有办法统一
proxy_set_header
指令,这样我就不需要为每个虚拟主机重复自己? - 除了,和之外
X-Forwarded-Proto
,我是否遗漏了任何其他重要的主机头修改?X-Url-Scheme
X-Forwarded-For
Host
nginx.conf
:
任何反馈/指向一个方向将不胜感激。
redirect - nginx 正在将子域重定向到父域
我正在尝试在 subdomain.mydomain.com 中设置 GitLab。但是当调用这个 url 时,它会被重定向到 www.mydomain.com。以下是我的 /etc/nginx/sites-available/subdomain.mydomain.com 文件。我跟着这个链接。
这个配置有什么问题。
nginx - Nginx 将客户端 IP 路由到同一个 Worker 进程
从https://www.nginx.com/blog/inside-nginx-how-we-design-for-performance-scale/了解 Nginx 架构和此图 是有意义的;
我想要做的是告诉 Nginx 主进程始终将来自同一个客户端的请求路由到同一个 Worker,方法是保留一个客户端 IP -> Worker PID 表。是否有配置选项来指定 Master-> Worker 路由的工作方式?
例如假设以下 request-> worker 案例:
请注意,新客户端 IP 18.234.1.197 也可以路由到 PID 为 1000 的 Worker,但 18.234.1.200 IP 始终会路由到 Worker 1000。
如果没有配置选项,但我可以编写一些 Lua 代码,我已经经常使用 Nginx Lua,所以这是可能的。关于如何影响 Master->Worker 选择的一些直觉会很棒。
nginx - 尝试使用 TRANSPARENT 选项进行 nginx 负载平衡时连接超时
我正在尝试使用 nginx 对与我的服务器的 tcp 连接进行负载平衡。我希望服务器知道客户端详细信息,因此我在连接到上游时使用透明选项。但是连接正在超时。
symfony - Symfony 可信代理不起作用
Symfony 不信任我的 nginx 反向代理:我在日志中看不到用户的真实 IP,所有内容都使用 IP 127.0.0.1 记录
我在 app.php 中的配置:
我的 nginx 反向代理配置:
这是 symfony 请求的 var_dump :
docker - 使用 nginx-proxy 容器(如前端服务器)访问同一主机上的多个容器时出现错误 503
我希望能够访问同一主机上包含 Web 应用程序的多个容器。
当我想访问主机(通过他的 ip 地址)或容器(例如通过 host_ip_adress/container1)时,我会从 Nginx 得到一个 503 错误。我想要的是通过 ip_addrress_host/container1 访问我的 container1。
我在互联网上找到的解决方案是设置一个 nginx-proxy 前端服务器(来源:https ://blog.florianlopes.io/host-multiple-websites-on-single-host-docker/ )
我的码头工人撰写文件:
我用命令运行它:
我在/etc/hosts 文件中的条目:
我从外部提出请求时看到的日志:
谢谢你的帮助,对不起我的英语不好!:-)
编辑:我试图将 nginx-proxy 容器和我的 Web 应用程序容器放在与 docker hub (https://hub.docker.com/r/jwilder/nginx-proxy/)中解释的相同的“docker网络”中,但是当我愿意 :
我有一个错误:
编辑 2:
这是我在开始时 nginx-proxy 容器的日志:
编辑 3:
所以,现在,我的 nginx 配置看起来像:
当我去http://192.168.12.28/container1
我的日志是:
当我去http://192.168.12.28/container2
我的日志是:
对于两者,响应都是 404 not found。似乎它查看了我的容器服务器的“/container1”或“/container2”路径?如果是真的,我可以强迫他照顾 /var/www/html/ 吗?
nginx - 将访问者的 IP 地址从 flask_restful 正确转发到 nginx
我正在运行flask_restful
通过 nginx 代理转发流量的 API 服务。虽然 IP 地址通过一些变量通过代理转发,flask_restful
但似乎无法看到这些变量,如其指向 127.0.0.1 的输出所示:
虽然我知道我可以通过request
对象(nginx 转发X-Forwarded-For
和X-Real-IP
)检索 IP 地址,但我不知道如何从flask_restful
显示/使用此 IP 地址进行上述输出,如果您想说限制 API 的数量,这一点很重要来自给定 IP 地址的呼叫,使用flask_limiter
. 有什么办法可以做到这一点?
url - 在 Nginx 中用版本号重写 URL
我有一个 Digital Ocean + Nginx 服务器,它托管了几个网站。现在,我想为一个网站管理多个版本。所以我需要在其网址中添加一个版本号,并希望应用以下规则:
1) 假设当前版本号是1
. 任何没有版本号的 url www.myweb.com/action/...
(比如action
除了版本号之外的任何东西)都应该自动重写为www.myweb.com/1/action/...
.
2) 具有不同版本号的 URL 将被不同的服务器(即代码库 + 数据库)监听不同的端口(例如3000
和8080
)。
以下是我当前的 nginx 配置文件,有谁知道如何修改它以应用第一条规则(我们稍后可能会实施第二条规则)?
r - Rserve 内置 HTTP 服务器的速率限制?
从FastRWeb修改后,我正在研究Rserve (1.8.5)的内置 HTTP 服务器。更新后的请求函数没问题,但问题是,每当 # 并发请求很高时,其中一些/大多数会抛出以下错误。.http.request()
警告:fork_http() 中的 fork() 失败:无法分配内存
警告:Rserve_prepare_child() 中的 fork() 失败:无法分配内存
这是由于没有足够的可用内存剩余,有必要以一种或另一种方式限制 # 个请求。
我尝试了几个客户端层(1)Python 的请求 + 拥抱库,(2)Python 的 pyRserve + 拥抱库,其中 # 工作进程由 # CPU 调整。此外,我在单个/多个容器设置 (3) (4) 中尝试了使用 Nginx 的反向代理。
在所有情况下,与仅使用内置 HTTP 服务器的 Rserve 设置相比,我观察到一些开销(~ 300 - 450 毫秒)。
我想按原样使用它将是最有效的选择,但我担心它只是不断尝试分叉并返回错误。(除了快速抛出错误之外,使用 CPU 利用率或平均响应时间等一些典型指标进行自动扩展并不容易。)
任何人都可以告知是否有一种方法可以在不依赖其他工具的情况下强制执行速率限制,而该工具不会牺牲性能?
我的 Rserve 配置大致如下。
这里还有一个简化的nginx.conf。