我必须配置反向代理以将 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。
谢谢大家
我所拥有的和工作的:
我使用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 …
我们正在使用 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 和 mod_headers 的 apache2.2 服务器。在使用ProxyPass指令运行的请求中,没有任何Header set指令起作用,即响应中未设置标头。
但是,如果我删除ProxyPass指令,则设置标题。使用 mod_proxy 时是否有一些配置禁用设置标头?
我不确定这是 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_proxy和mod_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 配置测试抱怨绝对 …
指令之间有什么区别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一部分看到这两个,但我不确定有什么区别。
我有一个设置,其中我的 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 提供服务,这可能吗?
谢谢!
我们有一个相当典型的设置:客户端 <-> 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 <-> 多个应用程序服务器,但我认为这在这里并不重要。
我在 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 的正确方法是什么?
尝试使用 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) mod-proxy ×10
apache-2.2 ×7
apache-2.4 ×2
fcgi ×1
keepalive ×1
mod-rewrite ×1
rabbitmq ×1
tomcat ×1
virtualhost ×1
websocket ×1