我将 nginx 配置为我的外部可见网络服务器,它通过 HTTP 与后端通信。
我想要实现的场景是:
我当前的配置(后端配置正确)是:
服务器 {
听80;
server_name 本地主机;
位置 ~ .* {
proxy_pass http://backend;
proxy_redirect http://backend https://$host;
proxy_set_header 主机 $host;
}
}
我的问题是对客户端的响应(第 4 步)是通过 HTTP 而不是 HTTPS 发送的。有任何想法吗?
我越来越喜欢我们开发环境中的 HTTP 反向代理,并发现基于 DNS 的虚拟主机反向代理非常有用。在防火墙上只打开一个端口(和标准端口)使管理变得更加容易。
我想找到类似于 SSH 连接的东西,但运气不佳。我不想简单地使用 SSH 隧道,因为这需要打开标准以外的端口范围。有什么东西可以做到这一点吗?
HAProxy 能做到吗?
此类问题可能已在此处提出,但我找不到与我的问题真正相符的问题。听说nginx性能相当可观,但是Apache有更多文档,社区(阅读:专家)寻求帮助
现在我想知道的是,两个 Web 服务器在性能、配置的简单性、定制级别等方面的比较如何。在 vps 环境中作为反向代理服务器??
我仍在权衡两者之间的 ruby web 应用程序(不是 ROR)与瘦(ruby web 服务器之一)一起使用。
具体答案将不胜感激。不触及红宝石部分的一般答案是可以的。我仍然是 Web 服务器管理方面的菜鸟。
我目前正在接收一个相当大的 HTTP 洪水,它导致我的 nginx 反向代理产生一个 502 错误网关。
我有一个前端服务器运行 nginx 作为后端服务器的代理,但它只是收到一堆connect() failed (110: Connection timed out) while connecting to upstream错误。成吨的。如果我绕过代理服务器连接到后端,我可以很好地运行该站点,所以我知道它在某个地方的反向代理中。但是,我不知道如何确定它超时的原因。
有什么帮助吗?
在 CentOS 6.2 上运行 nginx 1.2.3
我正在寻找适用于 Windows 的工具,这些工具可以充当服务器前的反向代理,以引入各种网络问题,例如抖动、延迟或数据包丢失。
我的偏好是可以在 Windows 上运行的软件解决方案。Httpd mod_proxy 似乎不支持这样的配置,谷歌搜索这个类别的工具被证明是徒劳的。
我在 2 个 apache 服务器前使用配置为负载均衡器的 apache (2.4) 服务器。当我在负载均衡器和后端之间使用 http 连接时它工作正常,但是使用 https 不起作用。负载均衡器的配置:
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
<Proxy balancer://testcluster>
BalancerMember https://[Backend1]:443/test
BalancerMember https://[Backend2]:443/test
</Proxy>
ProxyPass /test balancer://testcluster
Run Code Online (Sandbox Code Playgroud)
后端目前只有自签名证书,这就是禁用证书验证的原因。
负载均衡器上的错误日志包含以下内容:
[proxy:error] [pid 31202:tid 140325875570432] (502)Unknown error 502: [client ...] AH01084: pass request body failed to [Backend1]:443 ([Backend1])
[proxy:error] [pid 31202:tid 140325875570432] [client ...] AH00898: Error during SSL Handshake with remote server returned by /test/test.jsp
[proxy_http:error] [pid 31202:tid 140325875570432] [client ...] AH01097: pass request body failed to [Backend1]:443 ([Backend1]) from [...] …Run Code Online (Sandbox Code Playgroud) 我在能够执行 HTTP/2.0 的后端网络服务器前使用 nginx 作为反向 ssl 代理。
我注意到 nginx 通过 HTTP/1.1 而不是 HTTP/2.0 代理对后端服务器的请求。是否可以告诉 nginx 使用未加密的 HTTP/2.0 连接?这会提高性能吗?
我经常在一堆应用服务器前看到带有 SLB/反向代理的 Web 应用架构。
当到SLB的连接数需要太多资源而单个SLB无法有效处理时,会发生什么情况?对于一个具体但过度的示例,请考虑 200 万个持久 HTTP 连接。显然,单个SLB 无法处理此问题。
什么是缩放的建议配置了一个SLB?
创建 LB 的组/集群是典型的吗?如果是这样,客户端负载如何在 LB 组之间分布?
我有一个 nginx Web 服务器充当反向代理,将请求转发到 Apache 进行额外处理(我求你不要问为什么)。我有一个请求,我试图附加一个自定义标头,我希望 nginx 将该自定义标头转发给 Apache,以便我可以在应用程序中使用它做一些事情。
我已经翻阅了HttpProxyModule文档,但即使我在正确的地方,它们也不是很具有描述性(很可能我不是)。
如何让 nginx 转发X-CUSTOM-REFERRER标头?此外,如果可能的话,我希望它沿着进入的任何自定义标题转发。如果后者要求太多,前者就足以满足我目前的需要。
如您所见,我对 nginx 非常陌生,因此补救版本会有所帮助。
谢谢。
更新
我现有配置中的相关片段:
location / {
proxy_pass http://preview;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Custom-Referrer $x_custom_referrer;
}
Run Code Online (Sandbox Code Playgroud) 我有一个简单的 nginx 反向代理:
server {
server_name external.domain.com;
location / {
proxy_pass http://backend.int/;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是Set-Cookie响应头包含;Domain=backend.int,因为后端不知道它正在被反向代理。
如何让 nginx 重写Set-Cookie响应头的内容,替换;Domain=backend.int为;Domain=external.domain.com?
Host在这种情况下,不更改传递标头不是一种选择。
Apache httpd有此功能已有一段时间了,请参阅ProxyPassReverseCookieDomain,但我似乎找不到在 nginx 中执行相同操作的方法。
reverse-proxy ×10
nginx ×6
apache-2.2 ×2
apache-2.4 ×1
cookies ×1
http ×1
http2 ×1
https ×1
mod-ssl ×1
networking ×1
rewrite ×1
scalability ×1
ssh ×1
windows ×1