标签: mod-proxy

Apache SSL代理引擎

我必须配置反向代理以将 HTTPs 请求重定向到另一个也运行 HTTPs 的主机,,,但是我陷入困境

这是我的 Apache 上作为反向代理的虚拟主机配置

<VirtualHost *:80>
        ServerAdmin admin@mydomain.com
        ServerName mail.mydomain.com

RewriteEngine   on
RewriteCond     %{SERVER_PORT} ^80$
RewriteRule     ^(.*)$ https://%{SERVER_NAME}$1 [L,R]

SSLProxyEngine on

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

   ProxyPass / https://192.168.1.6/webmail/
   ProxyPassReverse / https://192.168.1.6/webmail/

    ErrorLog /var/log/apache2/webmail_log
    CustomLog /var/log/apache2/webmail-access_log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

在我的浏览器上我使用这个地址http://mail.mydomain.com

但它仅将请求重定向到反向代理服务器上的 HTTP,而不是邮件主机上的 HTTP。

谢谢大家

mod-proxy

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

为 Apache Server mod_proxy 指令中的所有 ProxyPass 映射设置超时

我所拥有的和工作的:

我使用Apache HTTPD 2.2来处理代理请求。我有多个ProxyPass映射:

ProxyRequests On 
<Proxy *>
AddDefaultCharset off
    Order deny,allow
    Allow from all
</Proxy>
ProxyPreserveHost Off

ProxyPass /a http://some_ip/
ProxyPassReverse /a http://some_ip/

ProxyPass /b http://some_other_ip/
ProxyPassReverse /b http://some_other_ip/

...
Run Code Online (Sandbox Code Playgroud)

这效果很好。

我想要的是:

我的一些请求花费了更长的时间,因此它们超时,给我一个代理错误 - 原因:从远程服务器读取错误

我想满足timeout我所有的要求。我可以做到这一点而不必timeout=... KeepAlive=On为每个ProxyPass映射添加吗?

我目前有类似的东西:

ProxyPass /a http://some_ip/ timeout=1200 KeepAlive=On
ProxyPassReverse /a http://some_ip/

ProxyPass /b http://some_other_ip/ timeout=1200 KeepAlive=On
ProxyPassReverse /b http://some_other_ip/

... and i do this for all my ProxyPass mappings
Run Code Online (Sandbox Code Playgroud)

我可以以某种方式告诉 Apache为所有映射添加参数吗timeout …

mod-proxy apache-2.2

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

Apache 作为代理产生故障。

我们正在使用 apache 代理来使我们的应用程序服务器能够通过 Internet 访问特定的网站。设置如下:

application servers --> apache proxy --> Internet website 
Run Code Online (Sandbox Code Playgroud)

一些请求失败并在应用程序服务器日志中出现以下错误:

<head>
<title>502 Proxy Error</title>
</head><body>
<h1>Proxy Error</h1>
<p>The proxy server received an invalid
response from an upstream server.<br />
The proxy server could not handle the request <em><a href="/link">POST
nbsp;/link</a></em>.<p>
Reason: <strong>Error reading from remote server</strong></p></p>
</body>
Run Code Online (Sandbox Code Playgroud)

以及 apache error.log 文件中的以下调试日志:

[Mon May 20 09:57:54 2013] [debug] mod_proxy_http.c(56): proxy: HTTP: canonicalising URL //myURL.com
[Mon May 20 09:57:54 2013] [debug] proxy_util.c(1506): [client 172.20.101.71] proxy: https: found worker …
Run Code Online (Sandbox Code Playgroud)

mod-proxy apache-2.2

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

为什么我在 apache2.2 上使用 proxypass 时没有设置 http 标头

我有一个安装了 mod_proxy 和 mod_headers 的 apache2.2 服务器。在使用ProxyPass指令运行的请求中,没有任何Header set指令起作用,即响应中未设置标头。

但是,如果我删除ProxyPass指令,则设置标题。使用 mod_proxy 时是否有一些配置禁用设置标头?

mod-proxy apache-2.2

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

将 ProxyPassMatch 用于 FastCGI,导致端口 9000 上的连接被拒绝

我不确定这是 php、apache 还是 iptables 配置问题,但在尝试访问.php文件时收到以下错误。如果您需要更多信息来帮助我诊断,请告诉我,我不知道接下来要检查什么。谢谢你。

error.log

[Thu May 08 16:43:15.392784 2014] [proxy:error] [pid 23112] (111)Connection refused: AH00957: FCGI: attempt to connect to 127.0.0.1:9000 (*) failed
[Thu May 08 16:43:15.392891 2014] [proxy_fcgi:error] [pid 23112] [client 74.164.254.206:52788] AH01079: failed to make connection to backend: 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

我按照本指南和运行的 PHP 5.5.9 和 Apache 2.4.7

我确实加载了mod_proxymod_proxy_so模块:

# grep LoadModule /etc/apache2/apache2.conf
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_fcgi_module /usr/lib/apache2/modules/mod_proxy_fcgi.so 
Run Code Online (Sandbox Code Playgroud)

这是 ProxyPassMatch 指令:

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/$1
Run Code Online (Sandbox Code Playgroud)

我还尝试将 UDS 与以下指令一起使用,但 apache 配置测试抱怨绝对 …

mod-proxy fcgi apache-2.4 mod-proxy-fcgi

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

Apache:&lt;Proxy&gt; 和 ProxyPass 之间的区别

指令之间有什么区别ProxyPass

ProxyPass         /     http://localhost:8080/ nocanon
ProxyPassReverse  /     http://localhost:8080/
Run Code Online (Sandbox Code Playgroud)

还有一个<Proxy>指令:

<Proxy http://localhost:8080/*>
    Order deny,allow
    Allow from all
</Proxy>
Run Code Online (Sandbox Code Playgroud)

在 Apache 配置文件中?

我经常在同virtualhost一部分看到这两个,但我不确定有什么区别。

mod-proxy virtualhost apache-2.2

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

如何让 apache 在反向代理设置中提供静态内容?

我有一个设置,其中我的 Tomcat 实例前面是带有 mod-proxy 的 Apache 服务器。我需要在反向代理端提供静态内容,以防身份验证关闭我的应用程序会话(重型 ajax 应用程序)。

这个想法是浏览器正在请求一些静态内容,例如:

http://myreverseproxy.com/app/sc/skins/Enterprise/images/SectionHeader/opener_closed.png
Run Code Online (Sandbox Code Playgroud)

Apache 将请求转发给将提供图像的 Tomcat。我需要它由 Apache 提供服务,这可能吗?

谢谢!

tomcat reverse-proxy mod-proxy apache-2.2

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

mod_rewrite+proxy 关闭与后端的连接(keepalive)

我们有一个相当典型的设置:客户端 <-> apache2 (2.2.22) <-> 后端 (*)。

最初,我们以最简单的形式使用 mod_rewrite 和 [P] 标志:

<VirtualHost *:80>
  RewriteEngine On
  ProxyPreserveHost On
  RewriteRule ^(.*)$ http://localhost:8081$1 [P,L]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

然而,使用此设置,即使客户端使用保持活动连接并使用一个 tcp 连接向 apache 发送多个 http 请求,apache 也会创建一个到后端的新 tcp 连接以获取请求。

我决定尝试直接使用 mod_proxy:

ProxyPreserveHost On
ProxyPass / http://localhost:8081/
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,现在 apache 和后端之间的 tcp 连接被重新使用(这是我最初的目标)。

这是为什么?mod_rewrite 中是否有某些内容可以配置以启用 keepalive 后端连接?

(*) 后端实际上是 haproxy <-> 多个应用程序服务器,但我认为这在这里并不重要。

mod-rewrite mod-proxy keepalive apache-2.2

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

Apache mod_proxy 背后的 RabbitMQ 无法解析深层链接

我在 Apache mod_proxy 后面运行了 RabbitMQ,因此我可以通过端口 80 访问 Web 管理界面:

<VirtualHost *:80>
    ServerName rabbit.example.com

    ProxyRequests Off
    ProxyPreserveHost On

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

    ProxyPass / http://localhost:15672/
    ProxyPassReverse / http://localhost:15672/

    <Location />
       Order allow,deny
       Allow from all
    </Location>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

但是,这似乎有效,例如,当我转到“队列”页面并单击列出的队列之一时,我会看到一个“未找到”页面和一个如下所示的 URL:

http://rabbit.example.com/#/queues/%2F/myqueue
Run Code Online (Sandbox Code Playgroud)

同样的事情也适用于连接、频道等。我似乎只能访问首页,但任何更深的页面似乎都会导致未找到。

在 Apache mod_proxy 后面配置 RabbitMQ 的正确方法是什么?

mod-proxy rabbitmq apache-2.2

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

没有协议处理程序对 URL /(方案“ws”)有效

尝试使用 apache2 设置 websocket 代理,出现以下错误:

没有协议处理程序对 URL /(方案“ws”)有效。如果您使用的是 mod_proxy 的 DSO 版本,请确保使用 LoadModule 将代理子模块包含在配置中

apache服务器的wstunnel模块已加载。以下是结果apache2ctl -M

Loaded Modules:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
access_compat_module (shared)
alias_module (shared)
auth_basic_module (shared)
authn_core_module (shared)
authn_file_module (shared)
authz_core_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
filter_module (shared)
headers_module (shared)
mime_module (shared)
mpm_prefork_module (shared)
negotiation_module (shared)
php7_module (shared)
proxy_module (shared)
proxy_connect_module (shared)
proxy_fcgi_module (shared)
proxy_html_module (shared)
proxy_http_module …
Run Code Online (Sandbox Code Playgroud)

reverse-proxy mod-proxy apache-2.4 websocket

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