标签: proxy

Nginx 代理/上游重定向使用错误的端口和协议

我使用 NGINX 服务器作为其他一些 NGINX 服务器的 ssl 代理。不幸的是,如果请求被上游服务器重定向,则位置字段包含错误的目标端口。

curl -v "https://example.com/site":

> GET /site HTTP/2
> Host: example.com
> User-Agent: curl/7.58.0
> Accept: */*
> 
* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
< HTTP/2 301 
< server: nginx
< date: Sun, 18 Mar 2018 20:01:44 GMT
< content-type: text/html
< content-length: 178
< location: http://example.com:9101/site/
< strict-transport-security: max-age=15768000; includeSubDomains
Run Code Online (Sandbox Code Playgroud)

NGINX 代理:

# Proxy: example.com
####################

server {
  listen 0.0.0.0:80;
  listen [::]:80;
  server_name example.com;
  root /srv/www/_empty;
  location / { return 301 https://example.com$request_uri; …
Run Code Online (Sandbox Code Playgroud)

rewrite nginx proxy https

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

GCP:通过代理在私有集群上运行 kubectl exec

我有一个带有私有 IP 的私有 kubernetes 集群。为了访问它,我设置了一个带有鱿鱼代理的堡垒主机。它看起来像这样:

My host -> bastion -> private cloud
Run Code Online (Sandbox Code Playgroud)

常规 kubectl 命令可以按预期抛出代理:

$ HTTPS_PROXY=socks5://127.0.0.1:1080 kubectl get pods 
No resources found.
Run Code Online (Sandbox Code Playgroud)

问题是当尝试 ssh 到 pod 时:

$ HTTPS_PROXY=socks5://127.0.0.1:1080 kubectl exec -it "some-pod" -- /bin/bash
error: error sending request: Post https://<master-ip>/api/v1/namespaces/ns/pods/some-pod/exec?command=%2Fbin%2Fbash&container=xxx&container=xxx&stdin=true&stdout=true&tty=true: EOF
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

proxy bastion google-kubernetes-engine

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

代理服务器和网关服务器有什么区别?

来自维基百科上的代理服务器

\n
\n

代理服务器可以驻留在用户的本地计算机上,或者位于用户计算机和 Internet 上的目标服务器之间的任意点。传递未修改的请求和响应的代理服务器通常称为网关,有时也称为隧道代理。转发代理是面向 Internet 的代理,用于从各种来源(大多数情况下是 Internet 上的任何位置)检索数据。反向代理通常是面向内部的代理,用作前端来控制和保护对专用网络上服务器的访问。反向代理通常还执行负载平衡、身份验证、解密和缓存等任务。

\n
\n

来自David Gourley 和 Brian Totty 的HTTP:权威指南:

\n
\n

严格来说,代理连接两个或多个使用相同协议的应用程序,而网关则连接两个或多个使用不同协议的应用程序。网关充当\xe2\x80\x9c协议转换器,\xe2\x80\x9d\n允许客户端完成与服务器的事务,即使客户端和服务器使用不同的协议。

\n

图 6-2 说明了代理和网关之间的区别:

\n
    \n
  • 图 6-2a 中的中间设备是 HTTP 代理,因为代理与客户端和服务器都使用 HTTP 协议。

    \n
  • \n
  • 图 6-2b 中的中间设备是 HTTP/POP 网关,\n因为它将 HTTP 前端与 POP 电子邮件后端联系在一起。网关\n将 Web 事务转换为适当的 POP 事务,\n以允许用户通过 HTTP 读取电子邮件。基于网络的电子邮件程序\n例如 Yahoo! Mail 和 MSN Hotmail 是 HTTP 电子邮件网关。

    \n
  • \n
\n

实际上,代理和网关之间的区别很模糊。\n由于浏览器和服务器实现不同版本的 HTTP,\n代理通常会执行一定量的协议转换。商业代理服务器实现网关功能以支持 SSL 安全协议、SOCKS 防火墙、FTP 访问和基于 Web …

nginx proxy gateway cgi http-server

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

NGINX auth_request 和 302 响应状态 = 500 无效 URL 前缀

我正在尝试使用 OAuth2 服务器(授权代码流)对 NGINX 请求进行身份验证,该服务器会将客户端重定向到登录页面。是否可以使用 auth_request 指令来实现这一点?这是我的 nginx.conf:

server {
    listen ${NGINX_PORT};

    proxy_send_timeout    600;
    proxy_connect_timeout    600;
    proxy_read_timeout    600;
    send_timeout        600;
    client_max_body_size 100m;
    absolute_redirect off;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log warn;

    location / {
        auth_request /authn;
        gzip_static on;
        index   index.html;
        root /usr/share/nginx/html;
        try_files $uri $uri/ @index;
    }

    location @index {
        root /usr/share/nginx/html;
        add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
        expires 0;
        try_files /index.html =404;
    }

    location /api {
        set $target http://gateway:8030/api;
        proxy_pass http://gateway:8030/api;
    }
    location /authn {
        set $target http://gateway:8030/authn;
        proxy_pass http://gateway:8030/authn; …
Run Code Online (Sandbox Code Playgroud)

nginx proxy authentication redirection

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

Apache 中的间歇性代理错误:“部分结果有效,但处理不完整”,并显示“AH01110:读取响应时出错”

我在 CentOS 7.8 上使用 Apache 2.4.43 以及 Varnish 6 和 PHP-FPM 来为 Magento 2 网站提供服务。

Varnish 侦听端口 80。Apache 侦听 8080 以向 Varnish 提供内容,并且还侦听端口 443,该端口将 HTTPS 请求代理到 Varnish,如下所示:

ProxyPreserveHost On
ProxyPass         / http://127.0.0.1:80/
RequestHeader     set X-Forwarded-Port  "443"
RequestHeader     set X-Forwarded-Proto "https"
Run Code Online (Sandbox Code Playgroud)

这适用于大多数请求,但偶尔(约 10% 的请求)我会收到来自 Varnish 和 Apache 的 503 响应。我在 Apache 日志中看到的唯一错误是:

[proxy_http:error] [pid 6719:tid 140054596265728] (70008)Partial results are valid but processing is incomplete: [client x.x.x.x:53760] AH01110: error reading response, referer: http://example.com
Run Code Online (Sandbox Code Playgroud)

如果我重试该请求,它通常会立即起作用,尽管有时我必须刷新几次才能满足请求。我注意到,当发出大批量请求时(即包含数百个外部资源的页面),这种情况会更频繁地发生。我还注意到,这种情况似乎发生在较大的文件上,而不是较小的文件上。

我猜测这可能是某种超时,但我不确定要调整哪些值或如何进一步调试它。

我尝试过的事情包括以下内容:

  • 这个答案涉及更改我不使用的模块(Forge Rock OpenAm)。 …

proxy varnish reverse-proxy mod-proxy apache-2.4

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

TPROXY 的用途是什么,应该如何使用它以及内部发生了什么?

在阅读了一些有关 TPROXY 的内容(例如在https://www.kernel.org/doc/html/latest/networking/tproxy.html)后,我现在有更多的问题然后得到答案。我实际上什至不知道 TPROXY 应该做什么......

关于我应该做什么以及内部发生的事情的一些假设。
你能纠正以下假设吗?

据我了解,这些是您应该运行的命令(尽管我不知道为什么):

  • iptables -t mangle -N DIVERT:
    • 一条名为的链DIVERT已创建。
    • 您可以选择名称。(只要所有命令都相同)。
    • 它必须是其中的一部分,mangle因为您将要做的事情比重定向、阻止和 NAT 更重要。
  • iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT:
    • PREROUTING链确保一旦 TCP 数据包从网络设备传递到内核,首先发生的事情就是将其发送到链DIVERT
    • -p tcp确保非 TCP 流量不会出现这种情况。
    • -m socket确保创建和关闭连接的数据包不会出现这种情况(例如SYN/ACK
    • 删除-p tcp -m socketTPROXY 将影响所有 IP(v4) 数据包。这将是一个不同但有效的设置。
  • iptables -t mangle -A DIVERT -j MARK --set-mark 1:
    • 内核将用编号标记这些数据包1。您可以选择其他号码。
    • 还可以向数据包添加多个标记。例如:通过添加命令,iptables -t mangle …

firewall routing proxy iptables

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

从服务器更新 ubuntu 桌面网络

我需要更新 100 多个运行 ubuntu 的工作站。

问题是我希望他们从本地服务器下载包,这样他们就不会使用太多的互联网带宽。

我为此使用了一种缓存代理,它只下载一次特定的包,然后将其分发到所有工作站。

package-management ubuntu proxy update

4
推荐指数
1
解决办法
250
查看次数

鱿鱼代理响应缓慢 - 优化

我们在 Centos5.3 上使用squid 3.0,目前有 20 个用户(Internet Explorer)使用这个代理。问题是通过代理访问速度较慢。即使是像 google.com(.au) 这样的简单网页,也比没有代理的直接连接要长 5 秒。看起来大约有 2-5 秒的延迟。禁用 google.com(.au) 的缓存没有帮助。明确定义 dns_nameservers 没有区别。

服务器参数 : Dual-Core AMD Opteron(tm) Processor 2220, 6GB memory, 60gb SCSI hdd

cache_mem 256 MB
cache_dir ufs /usr/local/squid/var/cache 30000 16 256
maximum_object_size_in_memory 256 KB
minimum_object_size 0 KB(0 - 200 KB - 不是真正的区别,延迟仍然存在)
maximum_object_size 32 MB

您将如何根据服务器规范更改 squid.conf 中的这些规范。什么会导致延迟?同样对于像 yahoo.com.au 这样的更大的网页,有没有办法从缓存中接收页面的一部分,然后是其余的(图像最后)。目前 15 秒内没有任何内容,然后会出现整个网页。

proxy centos squid

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

Squid:如何阻止特定 IP 地址的网站?

如何通过鱿鱼阻止特定 IP 的网站?

请给出示例或配置文件的解决方案。

linux proxy ip squid blocking

4
推荐指数
2
解决办法
3万
查看次数

使用autoproxy时,如何查看代理配置?

我将机器的全局设置设置为使用自动代理配置脚本。例如http://autoproxy.mycompanydomain.exe:8080,但仍有一些网络应用程序需要明确的代理设置。我认为这是因为这些应用程序不知道如何访问全局代理设置。如何查看自动配置的全局代理设置,以便我可以将它们复制到这些麻烦的应用程序的设置中?

linux proxy

4
推荐指数
1
解决办法
7650
查看次数