Articles of 反向代理

在本地主机上发布带有反向代理的多个Web服务器,保留原始客户端IP和主机名

我一直在Windows Server 2003上使用ISA来发布托pipe在同一台机器上的多个Web服务器。 设置如下: ISA HTTP / S监听器绑定到127.0.0.1 +外部IP IIS绑定到127.0.0.2 Apache绑定到127.0.0.3 Python web应用程序绑定到127.0.0.4 自定义应用程序绑定到127.0.0.x 我可以通过在ISA中设置发布规则,根据主机名将请求路由到特定的服务器。 ISA允许我保留原来的客户端IP和请求的主机名,还有许多其他function,如请求validation,URL映射和重写和caching。 现在我在Windows Server 2008 R2上,ISA在这里不起作用,TMG是一个巨大的PITA(甚至根本不用我的IP设置 – 默认gw 10.255.255.1,子网掩码255.255.255.255),以及通常certificateISA在RPC和其他内部networkingstream量方面是困难的。 所以我正在寻找一种方法来做同样的事情,特别是在保留原来的客户端IP的时候。 我试过Faststream IQ Proxy,看起来很有希望,尤其是因为它安装了自己的NDIS驱动程序,服务器发布工作正常,但客户端IP总是丢失。 代表和Squid可能是候选人。 但他们没有安装任何networking层驱动程序,所以他们似乎不可能保留原始IP。 我目前正在外部IP和127.0.0.1上运行IIS,并使用带有反向代理的ARP来发布其他服务器,但是它不能正常工作,而代理服务器的客户端IP仍然丢失。 说实话,这是糟糕的,我真的很抱歉,IIS 7.5仍然不包括像ISA那样的可行的反向代理解决scheme。 有没有人知道一个软件,像ISA存档相同的Web服务器发布效果,最好有一个像样的graphics用户界面(我也可以住在configuration文件虽然),反向代理请求本地Web服务器,而不会丢失主机名信息和原来的客户端IP ? 或者我注定要让TMG在我的设置中工作?

Zimbra 7.2反向代理到任意的内部网站?

我有安装在webmail.domain.com ZCS 7.2开源和mailman.domain.com/mailman邮递员。 我想设置一个代理,以便当有人去webmail.domain.com/mailman时,代理会调用mailman.domain.com/mailman的内容。 与Apache和mod_proxy我可以做一些像ProxyPass / mailman https://mailman.domain.com/mailman ProxyPassReverse / mailman https://mailman.domain.com/mailman 有了zimbra中的定制量,是否可以(也是可取的)在zimbra的web服务器上执行相同的操作? 所以基本上是一个反向代理,转发到任意的内部网站。

Apache代理传递给nginx

我在Apache中有以下configuration: RewriteEngine On #APP ProxyPass /abc/ http://remote.com/abc/ ProxyPassReverse /abc/ http://remote.com/abc/ #APP2 ProxyPass /efg/ http://remote.com/efg/ ProxyPassReverse /efg/ http://remote.com/efg/ 我想在nginx中有相同的configuration。 阅读一些链接后,这是我有: server { listen 8081; server_name localhost; proxy_redirect http://localhost:8081/ http://remote.com/; location ^~/abc/ { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://remote.com/abc/; } location ^~/efg/ { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; […]

Apache的反向代理使我redirect

我已经设置了一系列Web应用程序,出于安全目的,这些应用程序只能通过本地主机直接访问,每个服务都连接到不同的端口。 为了使这些应用程序可以在外部访问,正在通过apache设置一个反向代理。 它一直运行顺利,直到今天添加另一个应用程序,这是在初始访问后转发(我不知道是通过什么方法,但我没有访问正在做redirect的代码)以“proxyHost / bar /“redirect到”proxyHost / search /“而不是”proxyHost / bar / search /“ 我已经查看了我的脚本多次设置代理,并尝试了不同的方法,我已经阅读了关于在线和没有为我工作。 我现在求助于你们,如果这是一个基本的问题,或者在我的configuration中有一个明显的缺陷,我非常抱歉。 我对Apache很新。 谢谢! 这是当前configuration: ProxyRequests Off ProxyPreserveHost On ProxyHTMLEnable On <Proxy *> Order allow,deny Allow from all </Proxy> ProxyPass /foo/ http://localhost:1234/ ProxyHTMLURLMap http://localhost:1234 /foo <Location /foo/> ProxyPassReverse http://localhost:1234/ ProxyHTMLURLMap / /foo/ ProxyHTMLURLMap /foo /foo </Location> ProxyPass /bar/ http://localhost:5678/search ProxyHTMLURLMap http://localhost:5678/ […]

Nginx的多个服务器在同一个ip上

我在同一台服务器上有一个jboss实例和一个jetty实例,所以同样的ip,一个在端口8180上,一个在8280上。我计划在端口80上设置nginx,是否有可能将数据路由到任何一个在url上? 像ip / jboss和ip / jetty和路由交通到任一个?

Mountain Lion上的Apache 2.2忽略ProxyPass并向DocumentRoot发送请求

我有病态,在127.0.0.1:8081/sickbeard ProxyRequests Off ProxyPass /sickbeard http://127.0.0.1:8081/sickbeard ProxyPassReverse /sickbeard http://127.0.0.1:8081/sickbeard 在httpd.conf中 然而,当我尝试访问http://example.com/sickbeard/它给了我一个404,在错误日志中。 File does not exist: /Library/Server/Web/Data/Sites/Default/sickbeard 我认为这意味着它忽略了ProxyPass和ProxyPassReverse指令? 任何人都知道这可能是为什么? 对于它的价值,这个设置曾经在Lion下工作。 我有以下模块加载: LoadModule proxy_module libexec/apache2/mod_proxy.so LoadModule proxy_connect_module libexec/apache2/mod_proxy_connect.so LoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.so LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so LoadModule proxy_scgi_module libexec/apache2/mod_proxy_scgi.so LoadModule proxy_ajp_module libexec/apache2/mod_proxy_ajp.so LoadModule proxy_balancer_module libexec/apache2/mod_proxy_balancer.so 谢谢你的时间! 编辑:我被要求整个conf文件。 我相信它本质上是默认的山狮apache httpd.conf。 编辑2:couchpotato反向代理也不工作,如果读取httpd.conf后不清楚。 # # This is the main Apache HTTP server […]

Nodejs用于处理js和Nginx来处理所有其他事情

我有一个nodejs运行在端口8000和nginx端口80在同一台服务器上。 我希望Nginx能够处理所有的请求(image,css等),并将js请求转发到端口8000上的nodejs服务器。 有没有可能做到这一点。 我已经将nginxconfiguration为反向代理,但是它将每个请求转发给nodejs,但是我希望nginx处理除js以外的所有请求。 nginx的/启用的站点- /默认/ upstream nodejs { server localhost:8000; #nodejs } location / { proxy_pass http://192.168.2.21:8000; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_redirect off; proxy_buffering off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 更新尝试这个:但没有任何改变,仍然nginx转发每个请求到nodejs server { listen 192.168.2.21:80; server_name server; access_log /var/log/server/access.log; error_log /var/log/server/error.log; root /var/www/static; location / […]

防火墙后面的Subversion服务器和Apache反向代理展示间歇性挂起

这是我的情况: 1)DMZ:我在Apache服务器(我们的堡垒主机)上configuration了一个自签名的SSL证书,作为其他7个局域网服务器(subversion,ldap,jenkins,confluence,jira,mapi等)的反向代理。 2)防火墙:在DMZ堡垒主机(位于DMZ子网192.168.1.X)之间,我configuration了一个思科防火墙,可以让(特定)通信从DMZ堡垒主机端发送到特定的LAN主机。 局域网子网是192.168.50.X. 路由器是Cisco RV042。 3)局域网:我有7台服务器在UBuntu上运行各种应用程序,通过ufw启用iptables。 4)Subversion:7个服务器中的一个运行Subversion 1.5.4,并且暴露一个HTTP端口给堡垒主机。 非常像这篇文章讨论。 除了一件事我似乎无法解决的一切都已经运行了很多年了:如果没有人使用Subversion服务器几个小时/天(不完全一样),所有通过堡垒主机运行到LAN Subversion服务器的HTTPS Subversion命令都会失败当然)。 这导致了一个真正的问题,因为远程开发人员做了一堆本地更改,提交…然后Eclipse挂起,必须手动杀死,客户端源清理等….一个真正的麻烦。 然后,我接到一个电话…我导航到堡垒主机,并尝试查看一些来源,这几个点击开始工作后。 然后开发人员的下一次尝试提交始终工作。 以下是我所尝试的: 1)防火墙closures:如果我在Cisco路由器上禁用防火墙,那么它始终工作…始终,但我们没有DMZ / LAN安全! 2)局域网Subversion:如果你直接访问Subversion局域网服务器,它总是有效的。 3)防火墙configuration更改:启用防火墙时,我可以创build一个规则,以允许任何DMZ-> LANstream量通过,问题仍然存在。 实际上,防火墙已经打开但是完全打开了,问题仍然存在。 就好像路由器在堡垒主机和局域网颠覆服务器之间的防火墙需要在局域网端发起一个有状态的转换,但是我绝对testing过防火墙是开放的(如果不是这样,它永远不会工作……就像我说的如果频繁使用,它可以工作几天/星期)。 4)MTU不匹配:find一篇文章 ,提示这可能是问题,但根据ifconfig ,堡垒和颠覆服务器上的MTU是1500。 5)杂项的堡垒主机Apache的configuration更改…已经尝试了几十个东西在这里无济于事。 这里是在堡垒主机(反向代理)上的/etc/apache2/sites-enabled/default-ssl的Apacheconfiguration我已经在去年运行了: ProxyPass /svn http://virt-svn-srv.mycomp.int/svn keepalive=on <Location /svn> ProxyPassReverse http://virt-svn-srv.mycomp.int/svn SetEnv force-proxy-request-1.0 1 </Location> 我真的在我的智慧结束这一切…所有的build议是值得欢迎的。

Apache删除授权标头

Apache在我的设置中充当反向代理。 在端口8081上运行的应用程序服务器需要一个有效的Authorization标头。 标题由客户端应用程序设置。 Apache似乎删除这个头。 它没有到达端口8081上的服务器。 <VirtualHost mydomain.com:443> ServerName mydomain.com ServerAlias www.mydomain.com <Proxy *> Order deny,allow Allow from all </Proxy> SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem ProxyPreserveHost On ProxyRequests Off ProxyPass / http://mydomain.com:8081/ ProxyPassReverse / http://mydomain.com:8081/ </VirtualHost> 要validation端口8081上的服务器是否正常工作,我将RequestHeader set Authorization "Basic XZY"到该configuration。 在这种情况下,服务器在端口8081上正确处理标题。 我也直接从客户端连接到端口8081上的服务器,以确保客户端真正设置正确的标题。 这也很好。

Apache作为反向代理:同步还是asynchronous?

我使用Apache来提供静态内容,然后反向代理到Rails服务器来处理dynamic内容,其中一些可能需要很长时间才能生成。 当Apache向一个反向代理发出一个请求时,Apache进程已经用完了,只是坐在那里等待响应(即时使用prefork mpm),或者它可以closures并处理其他请求,只处理来自Rails服务器的响应当答复准备好了?