标签: reverse-proxy

Apache 反向代理:无协议处理程序

我正在尝试使用 apache 配置反向代理,但出现No protocol handler was valid for the URL错误,我不明白。

这是apache的相关配置:

ProxyRequests Off
ProxyPreserveHost On

<Proxy *>
       Order deny,allow
       Allow from all
</Proxy>

ProxyPass        /gonvaled/examples/jsonrpc/output/services/ http://localhost:8000/services/
ProxyPassReverse /gonvaled/examples/jsonrpc/output/services/ http://localhost:8000/services/
Run Code Online (Sandbox Code Playgroud)

请求到达 apache 为:

POST /gonvaled/examples/jsonrpc/output/services/EchoService.py HTTP/1.1
Run Code Online (Sandbox Code Playgroud)

他们应该转发到我的内部服务,位于:

0.0.0.0:8000/services/EchoService.py
Run Code Online (Sandbox Code Playgroud)

这些是日志:

==> /var/log/apache2/error.log <==
[Wed Jun 20 02:05:20 2012] [debug] proxy_util.c(1506): [client 127.0.0.1] proxy: http: found worker http://localhost:8000/services/ for http://localhost:8000/services/EchoService.py, referer: http://localhost/gonvaled/examples/jsonrpc/output/JSONRPCExample.safari.cache.html
[Wed Jun 20 02:05:20 2012] [debug] mod_proxy.c(998): Running scheme http handler (attempt 0)
[Wed Jun 20 02:05:20 2012] [warn] …
Run Code Online (Sandbox Code Playgroud)

apache-http-server reverse-proxy

22
推荐指数
2
解决办法
6万
查看次数

如何让 nginx 重写 HTTP 正文内容中的 URI?

这是我之前关于如何使 nginx 反向代理 302 重定向到 URI 子文件夹而不是 root 的问题的后续。

我有一个使用Nginx上的代理服务器rewriteproxy_pass指令来代理外部请求的URL就像https://domain.com/my/web/app/在一个局域网内部的服务器https://10.0.0.22/。这是我用 ASCII UML 表示翻译的尝试:

                                    .-------------.       .------------------.
                                    | Nginx proxy  |      | Local web server |
                                    | (domain.com) |      | (10.0.0.22)      |
                                    '-------------'       '------------------'
                                               |                 |
                                               |                 |
GET https://domain.com/my/web/app/ ----------->|                 |
                                               |---------------->| GET /
                                               |                 |
                                               |<----------------| 302 redirect /login.php
302 redirect /my/web/app/login.php <-----------|                 |
                                               |                 |
GET https://domain.com/my/web/app/login.php -->|                 |
                                               |---------------->| GET /login.php
                                               |                 |
                                               |<----------------| 200
HTML body content …
Run Code Online (Sandbox Code Playgroud)

nginx reverse-proxy

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

用于基于 SSH 名称的代理的 Haproxy

我有一台带有几个 lxc 容器的主机。我正在尝试根据域名直接授予对容器的 ssh 访问权限。为此,我尝试设置 HAProxy。可以使用 http 模式下的 ACL 轻松实现这一点。当我尝试使用基于 acls 的 ssh 的 tcp 模式时,我无法直接通过 ssh 访问容器。以下是我在 haproxy.cfg 中使用的片段。

listen SSHD :2200
    mode tcp
    acl is_apple hdr_dom i apple
    acl is_orange hdr_dom -i orange
    use_backend apple if is_apple
    use_backend orange if is_orange

backend apple
    mode tcp
    server apple 10.0.3.221:22

backend orange
    mode tcp
    server orange 10.0.3.222:22
Run Code Online (Sandbox Code Playgroud)

其中 apple.myhost.com 和 orange.myhost.com 是访问每个容器的域名。HTTP 代理与这些 acl 配合良好,但我遇到了 SSH 流量问题。

我收到以下错误。

ssh_exchange_identification:连接被远程主机关闭

linux ssh proxy reverse-proxy

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

如何使本地 Web 服务器从互联网上可见*而不*在路由器上设置端口转发?

我在我的(高端)笔记本电脑上开发网站,并且我在不同的物理位置工作。

我想保存,以便与外部可见的Web服务器不断同步,为客户网站的测试进度(或其他有关事宜)。因此,我试图找到一种方法,让我的麻烦的笔记本电脑自动公开从 Internet 上的任何位置都可以看到,即使我无法访问路由器来设置端口转发(例如从咖啡店或其他公共无线连接)。

我已经使用动态DNS通过我一个路由器,使我的选择着一个桌面服务器域名已经建立......但就像我说的,我想放弃使用该桌面服务器的步骤。

我希望付费反向代理服务(对帐户收取月费)将提供可用于此目的的专有套接字级客户端/服务器“反向代理”软件。我找不到一个。我已经在使用 TeamViewer 和 LogMeIn,提供类似的专有服务。事实上,我尝试使用 LogMeIn Hamachi VPN 来实现这一点 - 通过让我的桌面(已经对互联网可见)将请求端口 80 的 IP 流量通过 VPN 转发到我的笔记本电脑。但是,似乎不可能像这样设置 Hamachi/Windows(但我可能错了)。

我希望有一种简单而强大的方法来实现这一点。

networking windows vpn hamachi reverse-proxy

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

来自 Linux 命令行的即时反向 HTTP 代理

有一个很好的技巧可以在本地通过 HTTP 立即提供当前工作目录的内容:

$ python -m SimpleHTTPServer
Run Code Online (Sandbox Code Playgroud)

此命令在 *:8000 启动 HTTP 服务器,提供 $PWD 内容。

我正在寻找类似的东西,但用于设置反向代理。

像这样的东西:

$ instant-reverse-http-proxy --listen-on 'http://localhost:8000/' --proxy-to 'https://example.com/path'`
Run Code Online (Sandbox Code Playgroud)

以便

$ GET http://localhost:8000/bar
Run Code Online (Sandbox Code Playgroud)

会取https://example.com/path/bar

有什么线索吗?

linux bash http reverse-proxy

10
推荐指数
3
解决办法
6417
查看次数

Apache 作为多个目的地和一个默认目的地的反向代理

为下一个 Apache 的reverse-proxy问题寻求帮助。

  • 在 localhost:80 (aaaa:80) 上有一个 Apache 2.4
  • 有 3 个不同的 Web 应用程序
    • 一个在 localhost:8000 (aaaa:8000) 上运行
    • 另外两个在另一台机器上 - 所以 xxxx:8000 和 yyyy:8000
  • 在基本的 apache:80 上有一些静态内容(很少的 html 页面) DocumentRoot

要求

  • appX(在 xxxx:8000 上)应该通过http://aaaa/appX/ 访问
  • appY(在 yyyy:8000 上)为http://aaaa/appY/
  • 现有的静态页面(来自 apache 的DocumentRoot)应该像通常那样由 apache 提供服务
  • defapp-其他一切都应该代理到 aaaa:8000

很容易配置appXappY喜欢下一个:

ProxyPass         /appX/ http://x.x.x.x:8000/
ProxyPassReverse  /appX/ http://x.x.x.x:8000/

ProxyPass         /appY/ http://y.y.y.y:8000/
ProxyPassReverse  /appY/ http://y.y.y.y:8000/
Run Code Online (Sandbox Code Playgroud)

以上工作正常。因此,当试图访问http://localhost/appX/接到了一个响应appXx.x.x.x:8000 …

apache-http-server reverse-proxy

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

使 nginx 反向代理 302 重定向到 URI 子文件夹而不是 root

我的 LAN 上有一个带有 URL 的 Web 服务器https://10.0.0.22,我正在尝试通过 nginx 反向代理从 Internet 访问它,URL 类似于https://domain.com/my/web/app.

我遇到的困难是本地服务器将 302 重定向发送到/login.php,然后 nginx 将其传回外部客户端的浏览器,https://domain.com/login.php而不是https://domain.com/my/web/app/login.php. 这会导致 404 错误,因为https://domain.com/login.php.

我曾尝试,但收效甚微许多不同的选项,其中包括广泛的rewriteproxy_redirectproxy_buffering指令,但是这是接近我可以得到它:

    location ^~ /my/web/app/
    {
            proxy_buffering   off;
            rewrite           /my/web/app/(.*) /$1 break;
            proxy_pass        https://10.0.0.22/;
    }
Run Code Online (Sandbox Code Playgroud)

有没有办法配置 nginx 以便内部 Web 服务器的 302 重定向到 /login.php外部显示为/my/web/app/login.php

nginx reverse-proxy

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

如何将允许/拒绝与 set_real_ip_from 结合使用?

我的 nginx 后端服务器应该只接受来自我的前端 1.2.3.4 的请求。但是,我也希望 nginx 记录正确的 IP 地址,所以我使用set_real_ip_from. 但是这样做,allow配置中的规则不匹配,nginx 将始终返回 403。这是相关的配置:

allow  1.2.3.4;
deny  all;

set_real_ip_from  1.2.3.4;
real_ip_heaader  X-Real-IP;
Run Code Online (Sandbox Code Playgroud)

我怎样才能克服这个问题?

ip nginx reverse-proxy

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

Nginx 反向代理非 HTTP 软件

我想知道是否可以使用 Nginx 来做到这一点:

server1.domain.com:9999 --> localhost:4000
server2.domain.com:9999 --> localhost:5000
server3.domain.com:9999 --> localhost:6000
server4.domain.com:9999 --> localhost:7000
Run Code Online (Sandbox Code Playgroud)

在端口 4000、5000、6000 和 7000 上运行的服务不是 HTTP 软件。

如果无法使用 Nginx,我可以使用什么程序来实现这一点(而不干扰 Nginx)?我的 VPS 运行的是 Ubuntu 18.04。

谢谢。

linux proxy nginx reverse-proxy ubuntu

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

如何在 Ubiquiti 路由器上使用 nginx 作为反向代理

几天来,我一直在尝试设置我的 Ubiquiti ErPoe-5(固件 1.9.1)以使用 nginx 运行反向代理,似乎我的大部分麻烦都是由于我无法获得设备上最新版本的 nginx。

我看过的关于在其上安装 nginx的教程只让我知道 nginx 1.2,它不支持 websockets 或 HTTP2。HTTP2 不是必需的,但对于我想通过反向代理公开的内部资源,websockets 支持是必须的。事实上,路由器本身在其自己的 Web 管理界面中使用它们,并且从ubiquiti 论坛中的这篇文章中可以看出,您可能也需要 HTTP2。

linux router nginx reverse-proxy

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

标签 统计

reverse-proxy ×10

nginx ×5

linux ×4

apache-http-server ×2

proxy ×2

bash ×1

hamachi ×1

http ×1

ip ×1

networking ×1

router ×1

ssh ×1

ubuntu ×1

vpn ×1

windows ×1