AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[reverse-proxy](server)

Martin Hope
Snappawapa
Asked: 2025-02-03 02:21:39 +0800 CST

Traefik 重定向到不同的路径

  • 5

我有一个相当简单的基于 traefik 路径的反向代理,并且想知道是否可以将用户重定向到不同的路径,而不是中间件影响代理的请求。

我知道我可以只指定根路径来路由到所需的服务,但这会影响该服务在代理后面的处理(无法加载任何页面图像/资源)。

查看文档,没有发现任何明显的不是用于更改用户 URL 的中间件工具。有没有办法根据另一个路径将用户重定向到不同的路径?

我当前的配置:

tls:
  stores:
    default:
      defaultCertificate:
        certFile: /etc/traefik/certs/publicCert.crt
        keyFile: /etc/traefik/certs/privateKey.pem
  certificates:
    - certFile: /etc/traefik/certs/publicCert.crt
      keyFile: /etc/traefik/certs/privateKey.pem
      stores:
        - default
http:
  # https://doc.traefik.io/traefik/routing/services/
  services:
    core-depot:
      loadBalancer:
        serversTransport: oqmInternalTransport
        servers:
          - url: https://oqm-core-depot:443
            preservePath: true
    core-api:
      loadBalancer:
        serversTransport: oqmInternalTransport
        servers:
          - url: https://oqm-core-api:443
            preservePath: true
    infra-keycloak:
      loadBalancer:
        serversTransport: oqmInternalTransport
        servers:
          - url: https://oqm-infra-keycloak:443
    core-base-station:
      loadBalancer:
        serversTransport: oqmInternalTransport
        servers:
          - url: http://oqm-core-base_station:80
            preservePath: true
  # https://doc.traefik.io/traefik/routing/services/#serverstransport_1
  serversTransports:
    oqmInternalTransport:
      rootCAs:
        - /etc/traefik/certs/rootCert.crt
  # https://doc.traefik.io/traefik/routing/routers/
  routers:
    defaultRoute:
      service: core-depot
      rule: "Path(`/`)"
    core-depot-router:
      rule: "PathPrefix(`/core/depot`)"
      service: core-depot
      middlewares:
        - strip-oqm-prefixes
    core-api-router:
      rule: "PathPrefix(`/core/api`)"
      service: core-api
      middlewares:
        - strip-oqm-prefixes
    infra-keycloak-router:
      rule: "PathPrefix(`/infra/keycloak`)"
      service: infra-keycloak
      middlewares:
    core-base-station-router:
      rule: "PathPrefix(`/core/base-station`)"
      service: core-base-station
      middlewares:
        - strip-oqm-prefixes
  middlewares:
    strip-oqm-prefixes:
      stripprefix:
        prefixes:
          - /core/depot
          - /core/api
          - /core/base-station

reverse-proxy
  • 1 个回答
  • 18 Views
Martin Hope
Fausto Branco
Asked: 2024-12-04 21:32:27 +0800 CST

HAProxy - 保留 URL 中的路径 - acl

  • 5

全部。

我有以下配置文件:

frontend devopsdb
  bind    *:8080
  acl grafana_path path_beg /grafana/
  use_backend back_grafana if grafana_path 

backend back_grafana
  server grafana-dev 10.152.183.155:80 

我需要的是,当我访问 URL(172.21.10.76 是我的测试 VM 和 HAProxy 所在的位置):http://172.21.10.76 :8080/grafana/ 时,它会重定向到 grafana POD:10.152.183.155:80

到目前为止一切顺利,它起作用了。

但是一旦重定向,路径 /grafana/ 就会从 URL 中消失,这就是 HAProxy 停止重定向的原因... - http://172.21.10.76:8080/login

是否可以通过 HAProxy 以某种方式保留 /grafana/?

另一个 POD /prometheus/ 也会发生同样的情况

reverse-proxy
  • 1 个回答
  • 22 Views
Martin Hope
Shahzad
Asked: 2024-11-09 20:02:30 +0800 CST

通过 DMZ 访问敏感数据的理想系统架构

  • 6

我正在尝试找出处理外部请求的最佳方法。我正在开发一个系统,其中应用程序当前位于外部(DMZ),而数据库位于内部。数据库访问所需的特定端口已从 DMZ 计算机打开到数据库计算机。

经过与团队讨论,我们一致认为 DMZ 不应直接连接到数据库。经过进一步讨论,我们已将以下两种方法列为可能的解决方案。

对我来说,就安全性而言,两者似乎是相同的,因为我们使用相同的通信协议和相同数量的层。

我的理解正确吗?如果正确,B更合理的选择是什么?A这意味着我们有一个自定义数据访问服务,可以处理来自的请求APP并读取/写入数据。

最后,如果我们确实采用B,是否建议我们仍然使用Data Access Service但它是内部的(即APP -> Data Access Service -> DB)

系统图

reverse-proxy
  • 2 个回答
  • 70 Views
Martin Hope
Vincent Guttmann
Asked: 2024-06-10 04:52:33 +0800 CST

HAProxy 反向代理配置不正确?

  • 6

我正在配置我的域,我想将 HAProxy 设置为我所有子域的反向代理。不知何故,我配置不正确,我完全不知道哪里出了问题。这是我的完整 HAProxy 配置:

global
    log /dev/log    local0
    log /dev/log    local1 notice
    chroot /var/lib/haproxy
    stats socket /run/haproxy/admin.sock mode 660 level admin
    stats timeout 30s
    user haproxy
    group haproxy
    daemon

    # Default SSL material locations
    ca-base /etc/ssl/certs
    crt-base /etc/ssl/private

    # See: https://ssl-config.mozilla.org/#server=haproxy&server-version=2.0.3&config=intermediate
    ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POL>
    ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
    ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http

frontend http-in
    bind *:80
    acl subhome hdr_sub(host) -i homeassistant.exampledomain.com

    use_backend habackend if subhome

backend habackend
    mode http
    option forwardfor
    server homeassistant 192.168.5.1:8123

HAProxy 本身肯定是有效的,因为当我尝试访问我的域的根目录时,它会给我一个 503 服务不可用(应该如此),但是当我尝试访问子域时,它只是没有返回任何内容。

reverse-proxy
  • 1 个回答
  • 103 Views
Martin Hope
divB
Asked: 2024-05-17 05:39:18 +0800 CST

基本身份验证到 NTLM 转换代理

  • 4

有没有什么解决方案不仅可以代理 NTLM,而且可以将输入端的 HTTP Basic Auth 转换为输出端的 NTLM?

背景:使用 NTLM Auth 的内部 SharePoint 服务器应该可以通过 Apache 反向代理进行访问。问题是 NTLM 是有状态的,mod_proxy 无法处理它。现在,带有 mod_proxy 的 Apache 可以只提供基本身份验证(并通过 passwd 文件或类似文件进行身份验证)并代理到另一个内部基本身份验证到 NTLM 转换器。这只是读取我们的 http 身份验证凭据并将其传递到 SharePoint 服务器。

reverse-proxy
  • 1 个回答
  • 63 Views
Martin Hope
EricHymowitz
Asked: 2023-11-17 21:10:58 +0800 CST

UAG 反向代理可以在 443 以外的外部端口上工作吗

  • 6

我有一个 VMWare Unified Access Gateway Appliance v3.10,将其用作反向代理服务器。

反向代理运行良好,但它仅侦听外部接口侧的端口 443。

我想要反向代理端口 3000。也就是说,我想要反向
https://uag.mydomain.com/ 代理到https://internal.mydomain.com/
并且
https://uag.mydomain.com:3000/ 反向代理到https://internal.mydomain.com:3000/

内部部分工作正常。问题是,我怎样才能(或者根本不能?)让 UAG 监听端口 3000?

谢谢。

更新

这是我的配置(至少,不是完全空的部分)。没那么重要。

Proxy Destination URL   https://internal.mydomain.com:3000
External URL            https://uag.mydomain.com:3000
Proxy Pattern           /.*

/请注意,两个 URL 的末尾都没有。我省略了“代理主机模式”,因为两个代理都使用相同的主机名,我担心一个代理会超过另一个。

当 UAG 尝试连接到自己的端口 3000 时,我得到

root@uag-7a17d053-0619-41f3-ae74-5d75879b8ea6 [ ~ ]# curl -kI https://localhost:3000/
curl: (7) Failed to connect to localhost port 3000: Connection refused

即使端口 443 工作正常

root@uag-7a17d053-0619-41f3-ae74-5d75879b8ea6 [ ~ ]# curl -kI https://localhost:443/
HTTP/1.1 200 OK
reverse-proxy
  • 2 个回答
  • 48 Views
Martin Hope
Szyszka947
Asked: 2023-09-02 01:51:55 +0800 CST

从扩展的角度来看,反向代理 WebSockets 服务器是否有意义?

  • 5

我背后有反向代理和多个 WebSocket 服务器。我很困惑从扩展的角度来看这是否有意义,因为我是这样看的:

  1. WebSocket 服务器 A 有 30,000 个活动连接
  2. WebSocket 服务器 B 有 20,000 个活动连接

所有连接均通过反向代理。所以我猜我的代理有 50,000 个活动连接,因为它会将每个连接代理到适当的 WebSocket 服务器(或者也许它不能那样工作?我不确定)

那么仅从扩展和性能的角度来看,反向代理 WebSocket 服务器是否有意义?

reverse-proxy
  • 1 个回答
  • 67 Views
Martin Hope
Cediwelli
Asked: 2023-06-30 23:30:35 +0800 CST

OwnCloud 域显示为 localhost

  • 5

我的 OwnCloud 在我的服务器上的 nginx 反向代理后面运行。我按照以下说明通过 docker-compose.yml 安装了它:https://doc.owncloud.com/server/next/admin_manual/installation/docker/

除了一件事之外,一切都按我的预期进行。左下角的 WebDav 链接显示为 http://localhost:9001/... 而不是实际域。此外,注销按钮重定向到本地主机。其他一切都很好。

这是我的问题的图片:

在此输入图像描述

这是我的 .env 配置文件:

OWNCLOUD_VERSION=10.12
OWNCLOUD_DOMAIN=cloud.EXAMPLE.org
OWNCLOUD_TRUSTED_DOMAINS=cloud.EXAMPLE.org
ADMIN_USERNAME=admin
ADMIN_PASSWORD=REDACTED
HTTP_PORT=8080

这是我的反向代理:

server {
        server_name cloud.EXAMPLE.org;
        listen 443 ssl;
        location / {
                proxy_pass http://localhost:9001/;
        }

        ssl_certificate /etc/letsencrypt/live/EXAMPLE.de/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/EXAMPLE.de/privkey.pem;
}

在此先感谢您的帮助!

reverse-proxy
  • 1 个回答
  • 27 Views
Martin Hope
Steve Moretz
Asked: 2022-12-27 10:02:20 +0800 CST

apache ProxyPass 是否也处理 websocket 的 tls?

  • 5

我是 proxypass 的新手,假设这是我们的配置:

<IfModule mod_ssl.c>
<VirtualHost *:443>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf


ServerName www.xzos.net
Include /etc/letsencrypt/options-ssl-apache.conf
ServerAlias xzos.net
SSLCertificateFile /etc/letsencrypt/live/www.xzos.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.xzos.net/privkey.pem

<LocationMatch "/ray/">
        ProxyPass ws://127.0.0.1:1080/ray/ upgrade=WebSocket
        ProxyAddHeaders Off
        ProxyPreserveHost On
        RequestHeader set Host %{HTTP_HOST}s
        RequestHeader set X-Forwarded-For %{REMOTE_ADDR}s
</LocationMatch>
</VirtualHost>
</IfModule

由于我们将这些提供给 apache

SSLCertificateFile /etc/letsencrypt/live/www.xzos.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.xzos.net/privkey.pem

我们不应该也需要在运行的 websocket 服务器中使用它们,对ws://127.0.0.1:1080/ray/吗?

即使我们可以做到,但 Apache 处理得对吗?我想,因为这是本地服务器,所以专门做两次是多余的。我认为如果我们这样做,那么ws://127.0.0.1:1080/ray/需要成为wss://127.0.0.1:1080/ray/我们提供相同证书密钥的 websocket 服务器内部。

reverse-proxy
  • 1 个回答
  • 14 Views
Martin Hope
Computroniks
Asked: 2022-04-09 14:59:10 +0800 CST

HAProxy 背后的 Freeipa Web 界面

  • 0

我正在尝试将 FreeIPA Web 界面配置为在我的 HAProxy 实例后面工作。我找到了配置的旧 GitHub Gist ( https://gist.github.com/m4ce/d081ab39654c3e13bbe8b150986526a3 ) 以及一篇中等文章 ( https://medium.com/@michalmedvecky/running-freeipa-behind-haproxy- 77620736698e),但在这两种情况下,它们都使用rspirep命令,HAProxy 不再支持该命令。到目前为止,我得到了这个:

        balance roundrobin
        # Set cookie to ensure same server is used
        cookie SERVERID insert indirect nocache httponly secure

        # Modify headers
        http-request set-header Referer https://1.ipa.example.com/ipa

        # Set cookies domain
        acl hdr_set_cookie_dom_1 res.hdr(Set-cookie) -m sub Domain= 1.ipa.example.com
        http-response replace-header  Set-Cookie ^Domain=1\.ipa\.example\.com(.*)$  Domain=authenticate\.example\.com\1 if hdr_set_cookie_dom_1

        server 1.ipa 1.ipa.example.com:443 check ssl verify none cookie 1

但这只会导致客户端被重定向authenticate.example.com到1.ipa.example.com。

有没有人有关于如何配置这个或任何可能导致问题的想法的最新指南?

reverse-proxy
  • 0 个回答
  • 522 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve