- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 apache2 和 mod_proxy 实现一个透明代理,目前它不执行任何操作。只是将流量转发到正确的“主机”。
我不希望它依赖于主机 - 但它是动态的,因此它适用于所有主机。我试着这样做:
RewriteEngine on
RewriteLogLevel 5
RewriteLog "/var/log/apache2/rewrite.log"
RewriteRule ^(.*)$ $1
ProxyPass / http://$1
我还尝试了其他几种方法(均无效)。有什么方法可以从 header 访问“主机”并在 ProxyPass 指令中使用它?
在 nginx 中,我会使用 $host、$remote_addr 等。在 apache 上有什么方法可以替换它?
我需要的是能够在 ProxyPass 命令中访问 %{HTTP_HOST}、%{REQUEST_URI} 和 %{SERVER_PORT}。
最佳答案
要将 Apache ProxyPass 指令与动态主机名一起使用,您还需要使用 ModRewrite。
对虚拟主机的所有请求都将 ProxyPass 和 ProxyPassReverse(也称为“Apache 网关”)发送到 %{HTTP_HOST}
这样做有意义的唯一原因是如果您在 apache 服务器上有特定主机名的 localhost 条目
10.0.0.2 foo.bar.com
10.0.0.3 bar.bar.com
客户端请求 foo.bar.com ---反向代理到----> foo.bar.com/path1(在其他内部服务器上)
<VirtualHost *:443>
Servername *
# Must not contain /path1 in path (will add /path1)
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/path1/.*
RewriteRule ^/(.*) https://%{HTTP_HOST}/path1$1 [NC,R=302,L]
# Must contain /path1 in path (will send request to the proxy)
RewriteEngine On
RewriteOptions Inherit
RewriteCond %{REQUEST_URI} ^/path1/.*
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [NC,P]
SSLEngine on
SSLProxyEngine On
ProxyRequests Off
ProxyPass / https://$1/
ProxyPassReverse / https://$1/
ProxyPreserveHost On
###################
# SSL Constraints #
###################
SSLProtocol -ALL +SSLv3 +TLSv1
# Choose cipher suites
SSLHonorCipherOrder On
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:!LOW:!SSLv2:!EXPORT
# SameOrigin The page can only be displayed in a frame on the same origin as the page itself
Header set X-Frame-Options SAMEORIGIN
SSLCertificateFile /etc/apache2/example.crt
SSLCertificateKeyFile /etc/apache2/example.key
SSLCertificateChainFile /etc/apache2/gd_bundle.crt
SetOutputFilter INFLATE;proxy-html;DEFLATE
</VirtualHost>
关于apache - 是否可以在 ProxyPass 中使用 "%{HTTP_HOST}"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15678945/
我在设置 Proxypass 时遇到了两个问题。我已经在我的 Apache 设置中设置了 Proxypass。 例如: ProxyPass / http://www.domainname.com:80
我在给定的机器上运行了多个网络服务器(Apache、Tomcat、自定义 Python 服务器)。我让 Apache 监听端口 80,这是标准设置。为了通过此端口访问我的其他服务器之一,我在 Apac
我尝试设置 nginx,使其将请求代理到多个位置。例如。 /location1和 /location2都应该代理到 http://localhost:8080 .我只是不知道如何在不使用多个位置块的情
我有以下 nginx.conf location /monitoring/prometheus/ { resolver 172.20.0.10 valid=5s; set $prometheu
这就是我需要实现的目标我需要将所有对/public/的请求代理到另一台服务器,但对/public/forms/的请求不得被代理,而应由该 apache 服务器提供服务。 我已将这些指令添加到我的 ht
我正在尝试在我们的标准 http 代理服务器上为我的公司环境的 ActiveMQ 管理页面设置代理。我有一个规则,允许我访问管理登录页面: ProxyPass /foobar hostname:816
我最近将我们的一个网站迁移到了 Apache 2.0 和 Tomcat7 AWS,但我的 ProxyPass 指令有问题 ProxyPass / http://10.1.1.1:8080/faith/
我必须将 80 上的所有 apache 请求重定向到 8080 上的 tomcat,一条路径除外。 所以,如果接收到 http://example.com/anything --> tomcat:80
我正在使用 apache 作为反向代理,我可以对除某些 URL 之外的所有 URL 执行 ProxyPassReverse 吗?例如这是我的配置: ProxyPass /myapp http://lo
所以我使用 Apache 将特定文件夹代理到 Glassfish 实例。我的conf中的规则是: ProxyPass /folder http://localhost:28083 ProxyPassR
如果我有两个代理规则并且它们“重叠”,有没有办法指定最重要的规则? 示例(虚拟主机定义的一部分) ProxyPass /foo http://bar:8180/ ProxyPass / http://
我尝试排除所有以 "dgg-" 开头并以 ".xml" 结尾的文件,例如:dgg-file-1。 xml 使用 apache 代理。 这有效: ProxyPass /myfile.xml ! # si
我尝试了这个问题的答案。 How to merge multiple ProxyPass directives in Apache? 但是当我启动 apache 时出现错误,提示 ProxyPass|
由于 horrible, horrible errors ,我们更改了 Apache 连接到 Tomcat 的方式。我们正在使用 mod_jk : JkMount /path ajp13 现在我们使用
我在使用 mod_proxy 和 proxypass 指令时出现以下错误: 我的虚拟主机文件: LoadModule proxy_module modules/mod_proxy.so
我知道如何使用 ProxyPass 设置 apache 服务器。以便客户端可以连接到特定的 url,被重定向到另一个 url,但无法识别这一点,因为他输入的 url 仍然存在。 我必须使用 apach
我正在使用以下 Apache 配置将请求转发到 Tomcat 服务器: ProxyPass /myapp ajp://localhost:8009/myapp max=2 这是一个简化的配置,但足以重
我试图通过在 web.xml 文件中使用过滤器来锁定对我的 Tomcat WebApp 的管理部分的访问。 Remote Address Filter
我在同一台机器上使用 Apache 和 Tomcat 服务器时遇到了一些问题。我想将虚拟主机 kb.domain 重定向到 tomcat 应用程序 kb。 我已经阅读了互联网上的一些帖子,但没有找到解
这个让我抓狂。我有一个活跃且正在使用的 Apache 代理服务器在 EC2 上提供内容。它运行良好,并且具有各种配置如下的虚拟主机: ServerName m.FOO.com Ser
我是一名优秀的程序员,十分优秀!