我有Apache与mod_proxy传递请求到Tomcat。 麻烦的是,当我在Tomcat托pipe的Web应用程序中获取与请求关联的客户端IP地址时,它始终返回127.0.0.1。 是否有可能让Apache将原始IP地址传递给Tomcat?
我似乎没有得到如何正确configurationReverseProxy。 返回的URL全部为根目录“/”,而不是“/ tomcat”,只显示主“默认”的tomcat页面。 我使用以下代理规则将Apache2作为Tomcat的前端: ProxyPass /tomcat ajp://127.0.0.1:8009/ ProxyPassReverse /tomcat ajp://127.0.0.1:8009/ 我也尝试在Tomcat的AJP连接器设置中使用ProxyName。 使用mod_rewrite代理AJP请求也给出了相同的结果。 Apache error.log提供以下行(尝试从自己的根加载图像): File does not exist: /var/www/asf-logo-wide.gif, referer: 编辑:AJP工程通过mod_jk,但使用子文件夹时仍然得到HTTP相同的问题。
最近我注意到我的服务器一直在通过netstat -na发送数据到奇怪的位置“121.11.76.48”。 为了找出它发送的是什么,我试了一下: tcpdump -i eth0 host 121.11.76.48 -nnvvXSs 1514 并发现它不断发送HTTP请求到这个位置: 22:55:21.179353 IP (tos 0x0, ttl 64, id 26103, offset 0, flags [DF], proto: TCP (6), length: 296) 192.168.1.13.58155 > 121.11.76.48.80: P, cksum 0x880b (incorrect (-> 0xd884), 1904784743:1904784999(256) ack 915059568 win 46 0x0000: 4500 0128 65f7 4000 4006 4ce8 c0a8 010d E..(e.@[email protected]….. 0x0010: 790b 4c30 […]
我们正在几个tomcats之前运行一个apache反向代理。 有时我们想知道请求被转发到哪个服务器。 因为我们使用mod_proxy_balancer。 我试过了 \"%{X-Forwarded-Server}i\" 但是这不起作用。 它显示我的loadbalancer(apache)的名称 我怎样才能logging哪个工作人员被选中?
我有一个Apache服务器中的两个虚拟主机,我想做的事情,但我不知道是否有可能。 事情是我有主要的应用程序开发和ruby和博客是在wordpress。 所以现在我有这样的东西: example.com和blog.example.com 我想要做的是,对www.example.com/blog的所有请求都由blog.example.com提供,但是不会执行redirect(即,我不希望用户看到URL中的更改) 我到目前为止所尝试的是在VirtualHost中做一个代理: <Location /blog> ProxyPassReverse http://blog.example.com ProxyPassReverse http://blog.example.com:80 RewriteEngine On RewriteRule blog/(.*)$ http://blog.example.com/$1 [QSA,P,L] </Location> 它可以工作,但是一旦我在另一个应用程序中,所有链接都在blog.example.com中,而不是在example.com/blog中。 你知道这个解决方法吗? 感谢您的帮助。
我有一堆使用HTTPS的CGI脚本。 他们只能在内联网上,而不能从外部访问。 他们使用“安全”属性设置cookie,以便只能通过HTTPS发送。 对于其中一个脚本,也有一个反向代理,不幸的是使用普通的HTTP。 当我的CGI脚本有一个安全的cookie来响应时,它不会通过HTTP传递(毕竟,这是属性的用途)。 然而,我需要这个规则的例外。 是否有可能使用mod_rewrite / mod_proxy或类似的东西来改变来自我的CGI脚本的响应中的Set-Cookie头并删除Secure ,这样cookie可以通过不安全的HTTP连接传回给用户? 我明白,这首先破坏了Secure的目的,但我需要这个作为临时工作。 我search了网页,发现如何使用mod_rewrite添加一个Set-Cookie头,我也发现了如何从cookie头中获取来自客户端的cookie 。 我还没有find的是如何提取在我正在代理的脚本的响应中收到的Set-Cookie头。 那可能吗? 我该怎么做?
在我将解释我的stream程之前的快速问题:mod_cache只有在max-age已过期的情况下才执行使用if-none-match的重新validation,以防其在逆向代理模式下configuration? 我的目标是减less一些重新validation请求到我们的原始服务器。 例如:第一个请求到达原始服务器,然后mod_cache根据头caching控制:max-age将响应保存到caching中。 只有当max-age过期时,mod_cache将使用if-none-match重新validation。 目前,无论是否定义了max-age,mod_cache都会重新validation每个请求。 我的configurationApache 2.4.3(Windows),在Linux上我看到了相同的行为,我将在下面显示。 ServerName proxy.lo ProxyRequestclosures ProxyPreserveHostclosures 标题集“接受,内容types,内容编码,接受语言” RequestHeader设置X-Forwarded-Proto“http” #修改用户代理的标题 标题集caching控制“私有,无caching,无存储,无变换” CacheQuickHandlerclosures CacheDefaultExpire 300 #原始服务器不提供上次修改 CacheIgnoreNoLastMod打开 CacheIgnoreCacheControl On #原始服务器定义caching控制:私有,不存储用户代理 #因此,我想忽略代理服务器上的这些头。 CacheStorePrivate On CacheStoreNoStore打开 CacheEnable磁盘/ CacheRoot“C:/Apache.Cache” CacheDirLevels 5 CacheDirLength 4 CacheMinExpire 15 CacheDetailHeader CacheHeader 保持closures ProxyPass / http://origin.lo/ ProxyPassReverse / http://origin.lo/ 此外,我已经打开debugging日志级别,看看mod_cache如何处理caching的内容:我提供这个来显示mod_proxy总是决定一个内容不新鲜。 为什么?我提供这个来显示mod_proxy总是决定一个内容不新鲜。 为什么? 最大年龄提供(见下文)。 [Sun Nov 04 11:58:42.899890 2012] [cache:debug] [pid […]
我们有一个Apache服务器,作为运行在不同端口上的应用程序的代理。 例如: domain.com/app1/service1 > localhost:101 domain.com/app1/service2 > localhost:102 domain.com/app2/service1 > localhost:201 确定应用程序端口的规则相当复杂,所以我使用一个脚本来使用mod_rewrite来做到这一点: RewriteEngine On RewriteMap mapper prg:/foler/rewriteUrl.sh RewriteRule ^(.*)$ ${mapper:%{REQUEST_URI}} [P] 我遇到的问题是查看日志,从其他网站获取内容的机器人有很多请求。 我testing了是否可以从其他服务器代理内容,我可以: telnet domain.com 80 GET http://www.yahoo.com/ HTTP/1.1 Host: www.yahoo.com 在这里,我从雅虎获得内容,这意味着任何人都可以连接到我的服务器,并开始向其他服务器发送请求。 我已经看到,Apachebuild议如下所述保护您的代理: http://httpd.apache.org/docs/trunk/mod/mod_proxy.html#access 但问题是,我不知道什么IP将使用我的服务器在高级,所以我的问题是如何解决这个问题,同时任何人都可以向我的应用程序请求? 一些额外的信息: 我所有的应用程序都与我的Apache服务器在同一台机器上 如果我需要移动我的应用程序到不同的服务器,他们将仍然在我的Intrantet 我有mod_proxy,mod_proxy_http和mod_rewrite启用 谢谢
我正在用Ubuntu 12.05.5 LTS和Apache 2.2.22运行一个小型Web服务器,最近遇到这个问题: 对于虚拟机上的IIS服务器,我有以下反向代理configuration: <VirtualHost *:443> SSLEngine on DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.1 allow from 192.168. allow from 10.8.0 </Directory> … ProxyRequests Off ProxyPreserveHost On ProxyVia On SSLProxyEngine on <Location /AutodeskDM> Order Deny,Allow Deny from all Allow from 192.168. ProxyPass https://10.8.0.131/AutodeskDM ProxyPassReverse https://10.8.0.131/AutodeskDM […]
这是我的用例。 我想学习如何设置Apache ,所以这只是为了学习。 随意build议更好的select。 我在RHEL5使用Apache 2.4 。 我想使用ProxyPassMatch代理到两个不同的站点 ProxyPassMatch "^/(a|b)/(*.jpg)$" https://$1.example.com/$2 但是a.example.com和b.example.com需要不同的客户端证书。 我补充说 SSLProxyEngine on SSLProxyMachineCertificateFile /path/certs/webs.pem 如果webs.pem的内容只有一对(证书和私钥),则可以很好地连接到正确的站点。 但是,如果我添加第二对(证书和私钥)它不起作用。