Articles of 反向代理

将HTTP请求转发到虚拟networking后面的虚拟机

我试图build立一个虚拟机主机(当前运行的ubuntu + KVM),它将为不同的应用程序托pipe许多虚拟机。 例如,我们有一个虚拟机运行在一个虚拟机上,另一个虚拟机运行在另一个虚拟机上。 主办 / \ VM1 VM2 在内部,虚拟机在自己的虚拟networking上有自己的IP,但是从外部来看,只有一个IP地址是主机的IP地址。 在我们的networking上build立了一个指向主机IP的域,我可以设置一个iprule来将发往主机的stream量直接转发给其中一个虚拟机。 但是,为了使这两个虚拟机访问外部世界,不知何故,我需要转发基于URL的请求。 理想情况下,我想通过子域转发请求 http://vm1.host/ – > host – > VM1 http://vm2.host/ – > host – > VM2 但也可以通过URLpath: http:// host / vm1 – > host – > VM1 http:// host / vm2 – > host – > VM2 我已经在主机上安装了Apache 。 我需要什么types的转发/redirect/别名/反向代理规则才能使这种networking设置正常工作? 有什么额外的需要处理子域名?

逆向代理背后的GWT问题 – 无论是nginx或apache

我原来就这个问题提出过这个问题 ,但也许SF 在这个问题上是一个更好的地方。 我在使用GWT时,遇到了逆向代理的问题。 后端应用程序部署在上下文中 – 我们称之为/上下文。 当我直接点击它时,GWT应用程序工作正常: HTTP://主机:8080 /上下文/ 我可以在它前面configuration一个反向代理。 这是我的nginx例子: 上游后端{ 服务器127.0.0.1:8080; } … 位置 / { proxy_pass http:// backend / context /; } 但是,当我运行反向代理时,GWT会感到困惑,他说: 2009-10-04 14:05:41.140:/:WARN:Login:ERROR:未find序列化策略文件“/C7F5ECA5E3C10B453290DE47D3BE0F0E.gwt.rpc”; 你忘了把它包含在这个部署中吗? 警告:无法获取模块“https://主机名:444 /”的SerializationPolicy“C7F5ECA5E3C10B453290DE47D3BE0F0E”。 一个传统的1.3.3兼容的序列化策略将被使用。 您可能会遇到SerializationExceptions。 2009-10-04 14:05:41.292:/:WARN:StoryService:错误:未find序列化策略文件“/0445C2D48AEF2FB8CB70C4D4A7849D88.gwt.rpc”; 你忘了把它包含在这个部署中吗? 2009-10-04 14:05:41.292:/:WARN:StoryService:警告:未能获取模块“https://主机名:444 /”的SerializationPolicy“0445C2D48AEF2FB8CB70C4D4A7849D88”; 一个传统的1.3.3兼容的序列化策略将被使用。 您可能会遇到SerializationExceptions。 换句话说,GWT没有得到它需要prepend / context /然后查找C7F5ECA5E3C10B453290DE47D3BE0F0E.gwt.rpc,但只有当请求通过代理服务器时。 解决方法是将上下文添加到网站的URL: 位置/上下文/ { proxy_pass http:// backend / context /; […]

在Splunk 4.x之前运行反向代理

因此,我之前在反向代理之后安装了Splunk 3.x,并且下载了最新版本(input时为4.0.6),期望它与以前一样易于使用。 可悲的是,情况并非如此。 似乎有一些元素没有通过反向代理正确转换,导致Splunk失败。 我在Apache2中使用了以下configuration无济于事: <VirtualHost *> ServerName monitoringbox.com DocumentRoot /path/to/nowhere ProxyRequests off ProxyPass /splunk http://127.0.0.1:8000/splunk ProxyPassReverse /splunk http://127.0.0.1:8000/splunk <Proxy /splunk/*> Order allow,deny Allow from all </Proxy> 在反向代理背后设置Splunk 4.x有没有其他人比我更幸运?

在添加第二个后端之后,清漆VCL重新加载失败

我已经在我的生产服务器上成功运行了几个星期了。 现在我正在尝试configurationVarnish来为某些请求使用第二个后端。 我原来的工作VCL(/etc/varnish/default.vcl)是这样开始的: 后端默认{ .host =“127.0.0.1”; .port =“8080”; } VCL的其余部分… 我正在改变它: 后端默认{ .host =“127.0.0.1”; .port =“8080”; } 后端backend2 { .host =“12.34.56.78”; .port =“80”; } VCL的其余部分… 当我重新加载VCL文件时,我得到以下内容: Command failed with error code 106 Failed to reload /etc/varnish/default.vcl. 任何想法是什么错误,或者我怎么能得到更多的信息在这个问题上? (注意:为了重新加载VCL,我使用这里find的脚本: http : //kristian.blog.linpro.no/2009/02/18/easy-reloading-of-varnish-vcl/ )

清漆vs鱿鱼? caching解决scheme

鱿鱼:优化Web交付 – http://www.squid-cache.org/ 清漆: http : //varnish-cache.org/ 哪一个更好用,为什么?

使用不同的nginx位置上下文和后端服务器上下文进行负载平衡

我使用nginx和上游模块进行负载平衡,具有以下configuration upstream lb { server 127.0.0.1:8080; server 127.0.0.1:8081; } server { listen 88; server_name localhost; location /cas/ { proxy_pass http://lb; proxy_redirect off; proxy_connect_timeout 2; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 问题是“位置/上下文/”必须匹配到后端服务器的上下文,所以当我请求localhost / context / index.html然后nginx路由它到127.0.0.1:8080/context/index.html或127.0.0.1 :8080 /上下文/ index.html中。 是否有可能有不同的后端上下文和Nginx的位置,例如“位置/”nginx会将请求路由到127.0.0.1:8080/context/index.html或127.0.0.1:8080/context/index.html 谢谢。

反向代理的Apacheconfiguration

我即将设置一个反向代理服务器来筛选和logging页面请求,然后从原始服务器中继实际的内容。 (新的这个) 在此之前,我有原始服务器公开面对,我有php5configuration为接受20 MBfile upload我的PHP Web应用程序。 既然我在代理服务器之间插入代理服务器,是否还有什么特殊的configuration需要考虑,以确保诸如文件传输之类的东西仍能在客户端和源服务器之间正确传递? 谢谢!

phpbb背后的一个反向代理

我有一个django应用程序运行在一个nginx反向代理之后的apache上。 Nginx接受端口80上的请求并将其转发给127.0.0.1:81上的apache。 这工作正常。 现在我想在/ forums下的apache上运行phpbb。 我的问题是,当phpbb做redirect,它似乎redirect到内部的Apache端口,而不是端口80.所以,例如,当我第一次去http: //我的开发服务器/论坛来configurationPHP BB,它立即redirect到 http://127.0.0.1:81/forums/install/index.php。 有什么我需要做的nginx / apache / phpbbconfiguration让它redirect到外部端口? 非常感谢!

我如何设置鱿鱼只做反向代理

我读了https://stackoverflow.com/questions/656627/how-to-setup-a-squid-reverse-proxy和它的链接,但我似乎并没有得到它。 我只想要的是这样的: 有鱿鱼运行在一些端口(默认3128是好的)我将redirect到我的NAT上的端口80的所有请求到端口3128服务器上运行鱿鱼。 (其实我想我已经完成了这部分)。 现在我想修改squid.conf,例如如果请求是host1.mydomain.com,它应该被redirect到local_IP_Address_1上的80端口,如果是host2.mydomain.com,它应该到local_IP_Address_2上的80端口 而已。 现在请不要caching。 没有什么 – 只是代理请求,这就是所有。 我现在也不需要SSL,但如果答案也包含有关SSL的信息,那很酷。 谢谢 一些更多的信息:我有两台机器在本地networkingSRV1和SRV2与IP IP1和IP2。 SRV1应为多个域(dom1.mydomain.com和dom2.mydomain.com)提供服务,而SRV2应为多个域(dom3.myOtherDomain.com和dom4.mydomain.com)提供服务。 所有以上的域都设置CNAMElogging指向一个common.mydomain.com。 这是所有运行在具有NAT的路由器后面。 我以为我需要的是在SRV1的一些端口(默认3128是好的)上运行的squid,将所有到我的NAT上的端口80的请求redirect到运行squid的服务器上的端口3128。 (其实我想我已经完成了这部分)。 我认为它应该工作的方式是在SRV1上的WEB-> ROUTER:80 – > squid:3128 – > SRV1 / 2(基于主机):80。 但我有问题。 现在看起来SRV1上的squid发送到SRV2的请求是在端口80上发送的,但请求URL本身的端口是3128.即一个GET http://dom4.mydomain.com:3128/path被发送到SRV2上的端口80。 任何想法如何从鱿鱼发送的请求中删除:3128? 或者我必须移动鱿鱼端口80和其他服务器到另一个端口?

nginx反向代理

我有一个rails应用程序运行在nginx和乘客。 我想代理所有的请求通过url / cometchat到端口81上运行的Apache服务器。 所以所有的请求/ cometchat / cometchat / xyz /cometchat/xyz/abc/1.html 等应该去端口80上的Apache服务器。 是试过以下 位置^〜/ cometchat / {proxy_pass http://127.0.0.1:81 ; } 这只有当请求是/ cometchat /时才起作用,但当它是/cometchat/index.html时不起作用 和 位置〜^ / cometchat /(.*)$ {#alias / home / website / files / $ 1; proxy_pass http://127.0.0.1:81 ; } 两者都不起作用。 请build议正确的一个。