标签: proxy

nginx 301'ing limit_req 限制请求而不是错误页面

我在 nginx 后面的 apache 服务器上有一个批量搜索表单。我想保护该位置,以便 10 分钟内的第二个请求将 301 转到“您想使用我们的 API”页面,而不是类似以下内容:

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
    server {
       location = /search/bulk {
                limit_req zone=one burst=2;
                 ...  SOME CONFIG HERE...
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

当他们达到我的 limit_req 而不是显示 ngnix 错误页面时,我将如何 301 最终客户端?此外,其次,我不想限制整个 http 条款的流量。我可以在没有速率的情况下设置 limit_req_zone,但将它们放在我的位置节中吗?

谢谢,

M。

nginx proxy redirect 301-redirect rate-limiting

5
推荐指数
1
解决办法
3209
查看次数

NFSv4 通过 portforward

我想通过端口转发访问我的 NFSv4 服务器。大计划将是一个 NFSv4 服务器集群,在 localhost 上运行 HAProxy 进行负载平衡。但这现在并不重要。

在服务器上/etc/exports看起来像这样

/mnt/x  192.168.0.0/16(rw,sync,no_subtree_check,no_root_squash,fsid=1)
Run Code Online (Sandbox Code Playgroud)

我可以从我的客户端连接到 TCP 2049 上的服务器并像这样安装共享

mount -t nfs4 -o proto=tcp,port=2049 192.168.2.25:/mnt/x /mnt
Run Code Online (Sandbox Code Playgroud)

我通过过滤两台机器之间的所有其他通信来测试 NFVs4 对仅打开这个 TCP 端口感到满意。

所以我认为 NFS 运行良好。

但是当我将一个端口例如redir在客户端上转发到服务器时

redir --lport=3049 --cport=2049 --caddr=192.168.2.25
Run Code Online (Sandbox Code Playgroud)

并希望按如下方式安装它

mount -t nfs4 -o proto=tcp,port=3049 127.0.0.1:/mnt/x /mnt
Run Code Online (Sandbox Code Playgroud)

我明白了

mount.nfs4: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

我想念什么?我在服务器日志中看不到任何相关信息。

更新: 我捕获了好的和坏的连接尝试,一开始它们是相同的,然后客户端发送一个

PUTROOTFH,GETFH,GETATTR
Run Code Online (Sandbox Code Playgroud)

命令。在好的情况下,服务器会响应

PUTROOTFH-NFS4_OK,GETFH-NFS4_OK,GETATTR-NFS4_OK
Run Code Online (Sandbox Code Playgroud)

在坏(转发)的情况下,它会响应

PUTROOTFH-NFS4_OK,GETFH-NFS4_OK,GETATTR-NFS4ERR_PERM
Run Code Online (Sandbox Code Playgroud)

这一点我将导出更改为

/mnt/x  0.0.0.0/0.0.0.0(rw,sync,no_subtree_check,no_root_squash,fsid=1)
Run Code Online (Sandbox Code Playgroud)

但错误是一样的。

在好的情况下,服务器日志是

rpc.mountd[1711]: nfsd_export: inbuf '0.0.0.0/0.0.0.0 /'
rpc.mountd[1711]: nfsd_export: found 0x12dfeb0 path /
rpc.mountd[1711]: nfsd_export: inbuf …
Run Code Online (Sandbox Code Playgroud)

proxy nfs port-forwarding haproxy nfs4

5
推荐指数
1
解决办法
2116
查看次数

在 Nginx 中使用重定向而不是代理进行负载平衡

我想以一种非常规的方式使用 Nginx。我想在几台服务器之间进行负载平衡,而不是我想重定向到这些服务器的代理内容。

也就是说,如果一个请求进入我的 Nginx 服务器,它应该 302 重定向到另一台服务器,方法是从上游块或等效的块中随机选择一个。我什至不需要其他上游块功能,例如加权(但如果可能的话,让它们可用也无妨)。

现在,我有以下配置,它可以满足我的需要,但有点难看:

upstream boxes {
        server 127.0.0.1:46011;
        server 127.0.0.1:46012;
}

server {
        listen 46011;
        return 302 http://box11.example.com$request_uri;
}

server {
        listen 46012;
        return 302 http://box12.example.com$request_uri;
}

server {
        listen 80;
        server_name example.com;

        location / {
                proxy_pass http://boxes;
        }
}
Run Code Online (Sandbox Code Playgroud)

有没有更简单的方法来处理这种情况,而无需求助于我自己?

configuration nginx proxy load-balancing

5
推荐指数
1
解决办法
7618
查看次数

代理服务器设置卡在 Server 2003 R2 for Windows 更新上

稍等片刻,听听。这将是一个漫长的过程。过去几个月,我们在非常特定的 Microsoft Server 2003 R2 机器上的更新遇到了问题。这个问题让我和我们的常驻服务器管理员感到困惑,因为我们无法弄清楚究竟是什么导致了问题。

以下是详细信息:

我们的网络: 该网络是一个中/小型组织,拥有大约 (500) 台计算机和 20 多台服务器。主要 DC 和关键服务都在 Server 2012 (r1) 上,而一些较旧的应用程序/服务在 2008 R2 上运行。此外,还有少量 Server 2003 R2 机器运行主要是遗留应用程序和服务,它们将在明年被替换或过时。

问题: 问题在于,在这几台 2003 R2 服务器中,其中三台表现出奇怪的行为。当他们突然(在同一更新周期中)无法正确安装更新时,我们首先收到了这种行为的警报,我们通过监控软件收到了警报。

Windows 更新: 在有问题的机器上,我们能够很好地连接到 Windows 更新 URL,但任何实际检查更新的尝试都将导致

错误编号:0x80244016

在 Windows 更新页面中。此错误代码对应于无效的 URL。当我们通过 WSUS 时,URL 应该是(我们已经检查了所有服务器)到我们的 WSUS 服务器的 FQDN 和端口 \NOC3.sub.domain.com:8888 。我们发现此时通过 winHTTP 代理设置阻止了流量。所以,当这个问题发生时,我们可以使用

proxycfg -h

并清除代理设置。运行 Windows 更新,它将成功连接。

这就是它变得有趣的地方: 现在,这一切都很好,但它会变得更好。所以下一个 Windows 更新大约在上个月出现,并且仔细观察,完全相同的服务器再次出现完全相同的问题。现在,我们有点怀疑为什么相同的代理设置会重新应用。当然,我们认为这可能是一项没有正确禁用或可能只是错误应用的旧政策。因此,我们都为域控制器上 GPM 中的服务器搜索了所有适用的 GPO,寻找可能与这种奇怪的、现在重复出现的策略(?) ) 代理服务器设置。没有应用任何提及代理服务器的政策。然后,我在机器上运行了 RSOP。

变得陌生: 所以在运行 RSOP 之后,一切似乎都加载好了。直到我尝试打开本地计算机 --> 管理模板文件夹。首先,打开文件夹需要很长时间。然后,当它最终运行时,会出现与 AER_####.adm 相关的错误消息。不仅是错误,而且您还会在同一文件夹中显示多种语言的策略设置。现在,我不太会阅读阿拉伯语、中文、意大利语或日语,但我将假设这些是不同语言的策略设置的副本。我发现通过清除 %root%\system\inf 文件夹中的 .adm 文件,至少可以让 …

wsus proxy group-policy windows-update windows-server-2003-r2

5
推荐指数
0
解决办法
1031
查看次数

如何解决 OpenSSH 协议不匹配问题?

我正在尝试绕过医院防火墙。

我可以在端口 443 上通过 SSH 连接到我的 devbox:

ssh -L 8080:devbox:443 root@devbox -p 443

但我实际上无法在浏览器中加载 devbox。当我去localhost:8080我收到以下错误:

SSH-2.0-OpenSSH_4.3 Protocol mismatch.

当我ssh -V得到以下信息时:

开发箱: OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008

本地机器: OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011

我假设这种差异是导致协议不匹配的原因。谁能建议如何解决不匹配?

ssh proxy port-forwarding ssh-tunnel

5
推荐指数
1
解决办法
5万
查看次数

proxy_cache_ 和 fastcgi_cache 有什么区别?

我正在寻找一个简单的 Nginx 微缓存解决方案,我最终看到了两种拥有微缓存的方法。一些教程使用proxy_cache,而其他教程使用fastcgi_cache。这两种解决方案之间的区别、优缺点是什么?

谢谢!

nginx proxy cache fastcgi

5
推荐指数
1
解决办法
4442
查看次数

代理使用 https 删除自定义标头

问题 :

对于 HTTPS 请求,我的代理从响应中删除自定义标头:

HTTP请求:

$ curl -I -x 127.0.0.1:5566 http://www.google.fr
HTTP/1.1 200 OK
...
X-Servedby: 50001 => My custom header is added to the response
Run Code Online (Sandbox Code Playgroud)

完整回复:https : //gist.github.com/vdaubry/eafabf211957cbe87563

HTTPS 请求:

$ curl -I -x 127.0.0.1:5566 https://www.google.fr
HTTP/1.1 200 Connection established
Proxy-Agent: Privoxy/3.0.23
X-Servedby: 50001 => doesn't appear in the final response

HTTP/1.1 200 OK
Date: Sat, 07 Feb 2015 16:29:25 GMT
...
Vary: Accept-Encoding
Run Code Online (Sandbox Code Playgroud)

完整回复:https : //gist.github.com/vdaubry/2869d85b2e8affdc5a8c

我不明白为什么在连接打开时添加了自定义标头但不是最终响应?


更多信息:

我有对多个 Privoxy 实例的 HAProxy 负载平衡请求。HAProxy 正在将 privoxy …

proxy https haproxy privoxy

5
推荐指数
1
解决办法
1499
查看次数

现代网络浏览器是否总是在 SNI 扩展标头中发送网络服务器的主机名?

当支持服务器名称指示 (SNI) 的 Web 浏览器连接到 HTTPS 站点时,它是否总是在 SNI 字段中发送主机名?

也就是说,Web 浏览器无法知道它所连接的 HTTPS 站点是否是主机名 IP 上托管的唯一 HTTPS 站点,或者该 IP 上是否存在启用了 SNI 的基于名称的 HTTPS 虚拟主机,正确的?

Web 代理应该能够检查未加密的 SNI 标头并根据主机名进行网站阻止,而不是像现在针对 HTTPS 站点那样仅根据 IP 地址进行阻止,对吗?

除了 Windows XP 上的 IE6/7 之外的所有主要浏览器似乎都支持 SNI。

谢谢。

proxy https sni

5
推荐指数
0
解决办法
226
查看次数

将 IIS 设置为 HTTPS 请求的转发代理

是否可以将 IIS 设置为 HTTPS 请求的转发代理?

我的用例是这样的:我在 IIS 机器上本地运行了一些进程,它能够进行 HTTP 调用,但不能进行 HTTPS 调用。我想设置 IIS,以便我可以向它发送 HTTP 请求(在本地主机上),然后 IIS 会将请求作为 HTTPS 请求转发到真实 URL(使用某种基于原始 URL 的映射)。

像这样:

myprogram on server1 <-> http <-> IIS on server1 <-> https <-> server2
Run Code Online (Sandbox Code Playgroud)

这可能吗?此链接(http://www.iis.net/learn/extensions/configuring-application-request-routing-(arr)/creating-a-forward-proxy-using-application-request-routing)说“请注意,ARR仅处理 HTTP 流量,不处理其他协议。ARR 不支持 HTTP CONNECT 动词,因此不支持转发 HTTPS 流量。” 但也许还有其他方法可以在 IIS 上实现这一点?

iis ssl proxy https

5
推荐指数
1
解决办法
9311
查看次数

具有动态端口转发的 Nginx 反向代理

我正在 Nginx 上设置反向代理。我需要它来监听多个端口。然后我想在后端服务器上访问完全相同的端口。像这样:http://frontendserver:9000 -> http://backendserver:9000

这是我认为会起作用的

   ## server configuration
    server {

        listen 9000 ;
        listen 9001 ;
        listen 9002 ;
        listen 9003 ;
        listen 9004 ;
        listen 9005 ;
        listen 9006 ;
        listen 9007 ;
        listen 9008 ;
        listen 9009 ;

        server_name frontendserver;

        if ($http_x_forwarded_proto = '') {
            set $http_x_forwarded_proto  $scheme;
        }

        location / {
                proxy_read_timeout  900;
                proxy_pass_header   Server;
                proxy_cookie_path ~*^/.* /;
                proxy_pass         http://backendserver:$server_port/;
                proxy_set_header    X-Forwarded-Port  $server_port;
                proxy_set_header    X-Forwarded-Proto $http_x_forwarded_proto;
                proxy_set_header    Host              $http_host;
                proxy_set_header    X-Forwarded-For   $proxy_add_x_forwarded_for;
        }
    } …
Run Code Online (Sandbox Code Playgroud)

nginx proxy reverse-proxy

5
推荐指数
1
解决办法
2369
查看次数