Articles of 反向代理

反向代理如何知道哪些内容是静态的?

我正在研究反向代理的设置,比如在apache之前的nginx,以减less服务静态内容的web服务器的负载。 对于任何给定的URL,我们的网页将有不同的部分静态和dynamic。 反向代理如何知道何时自己提供资源,或者将其从源代码Web服务器中提取出来? 显然,像图片和JavaScript文件是静态的,但即使其中一些,如validation码,dynamic生成。 我们的drupal站点实际上是查看url中的path,并相应地提供不同的内容,将path元素作为参数。 它是否只需要在反向代理端进行大量的configuration,而configuration程序对网站的哪些部分是dynamic的还是静态的有深入的了解?

使用Apache作为反向代理时的ErrorDocument

'晚间, 我在同一个物理服务器上有一个Apache服务器(2.2.19)和一个4D Webstar服务器(有一个未知的HTTP服务器)。 Apache只侦听SSL端口(443),并被用作4DW的反向代理(通过SSL VHost)。 这里是我使用的两个代理指令: ProxyPass / http://127.0.0.1:xxxx/ timeout=15 connectiontimeout = 15 ProxyPassReverse / http://127.0.0.1:xxxx/ 鉴于4DW服务器可以不时脱机的事实,我想有一个自定义的503错误页面来通知用户停机或维护后端应用程序。 除Apacheredirect从/ htdocs /(这是documentmentroot)的一切,我们需要快速访问errordocument编辑它在需要时(因此,外部errordoc不是一个选项)。 有没有办法迫使Apache不要代理一个给定的目录(比如说htdocs / error /),或者任何解决scheme都使用DocumentRoot之外的errordocument? 干杯

Apache ReverseProxyPassredirect到http而不是https

我有一个使用Apache mod_proxy的反向代理设置: <VirtualHost *:443> ServerName reverse.server.com ProxyPass / http://10.1.9.11:3000/ ProxyPassReverse / http://10.1.9.11:3000/ ProxyPreserveHost on …snip ssl stuff… </VirtualHost> 这在大多数情况下工作正常。 问题是当内部服务器做一个redirect。 虽然proxypassreverse应该抓住的位置,它似乎,它redirect到http://reverse.server.com,而不是https://reverse.server.com 。 所以它是一半的工作,地址更改正确,但协议保持为内部服务器。 我不清楚它为什么这样做,因为代理连接是SSL – 有什么想法?

如何将子域指向不同的本地IP

我的问题是如何使用dynamicIP将子域指向本地服务器 。 区别在于我的ISP有一个静态IP,我想我不需要使用DynDNS对吧? 所以我可以用什么呢? 我的目标是将每个子域指向不同的Web服务器,如下所示: mydomain.com – > 192.168.1.100(主网页服务器) sub1.mydomain.com – > 192.168.1.101(networking服务器1) sub2.mydomain.com – > 192.168.1.102(networking服务器2) 我试过在这里使用Apache遵循指令的代理模块但是不成功。 当我通过浏览器访问sub1.mydomain.com时,它总是导致mydomain.com。 我可以这样做吗? 如果不是,请给我另一种方式。 我使用Ubuntu Server 12.04 [解决了] 解 设置DNS 公共IP的Alogging点: 1 @ public.ip 2 www public.ip CNAMElogging指向子域: 1 sub1 mydomain.com 2 sub2 mydomain.com 设置Apache。 将sub1和sub2添加到/etc/apache2/sites-available SUB1: <VirtualHost *:80> ServerName sub1.mydomain.com <Proxy *> Order deny,allow Allow from all […]

我应该使用代理/反向代理吗?

我有一些networking服务器在同一个networking,每个人都有自己的IP。 现在我想要一个代理根据请求的域将请求“转移”到正确的服务器。 一切都很好,直到我意识到所有请求都是从代理而不是原来的IP来考虑的。 如何使请求在TCP / IP中发送它的原始IP? 我不想使用获取variables或这种解决scheme。

Squid如何知道caching是否被validation

在反向代理模式下,Squid可以caching先前由networking中的设备访问的网站的内容。 如果远程站点上的内容在某种程度上发生了变化,或者通过代码推送,会发生什么? Squid如何知道它需要去原始网站获取新版本的资产,而不是caching? 现在,dynamic的基于JavaScript的(单个页面)网站会出现这个问题吗? 一个方面的问题:“反向代理”本质上与Squid的“加速器模式”是一回事吗?

错误的IP与lighttpd反向代理

我使用lighttpd反向代理服务django与gunicorn。 现在这个configuration工作: proxy.server = ("" => ( "" => ( "host" => "127.0.0.1", "port" => 8000, ))) 现在我把枪炮移到一个容器里,使用: proxy.server = ("" => ( "" => ( "host" => "192.168.1.2", "port" => 8000, ))) 现在每个请求都有一个由gunicorn看到的ip 192.168.1.1 。 我会明白,如果反向代理混淆真实的IP,但为什么它与本地主机然后呢? 因为我得到 X-Forwarded-For: client-ip X-Host: the.domain X-Forwarded-Proto: http 客户端IP是公共IP空间。 请求来自 主办: nc: connect to 127.0.0.1 8000 from localhost (127.0.0.1) […]

nginx多个前端服务器与SSL DNS设置?

我有我的后端应用程序服务器设置,并与西海岸单个逆向代理nginx设置工作。 它也做caching。 现在我想在东海岸地区join一个可以caching的前端服务器。 我可以find很多关于单个前端到大量后端设置的资源,但没有提到多个前端到单个后端。 我不能找出DNS问题。 我使用谷歌域名,它不会让我添加另一个@logging指向其他服务器。 重复录制Google Domains ***附加信息 我会去的CDN路线,但该网站约550K页,每个40Kb左右。 大约20GB。 它的stream量也相当高。 我很好,不平凡。 目前与ramnode vps的主机 SSL可能是一个问题。 基本上可以1证书工作在多台服务器提供他们有相同的设置?

在不同的web服务器(nginx,apache,iis等)中重写响应体的可能性

我正在对常用Web服务器之间的差异进行个人研究。 当涉及到特定的function时,我正在努力寻找明确的答案,对我来说最重要的是:能够重写响应正文 。 场景 :Web服务器(apache,nginx,iis,varnish,haproxy)作为反向代理或应用服务器代理(以nginx – > passenger为例)。 问题 :在哪个Web服务器中,如何重写响应主体? 对这种操作的简单性和性能的评论也是有帮助的。 我的研究 : Content rewritting: Nginx: ngx_http_sub_module Nginx: LUA body_filter: https://groups.google.com/forum/embed/#!topic/openresty-en/Gj-s_hARc84 Apache: mod_substitute Apache: starting from 2.3 LUA can be used as a scripting language (and the response body rewriting with it is possible) IIS: does not seem top be possible? Varnish: possible, but hacky: […]

Nginx作为301的反向代理服务器

我对NGINX有一点经验。 我正在尝试使用它作为一些运行节点的docker集装箱的反向代理。 目标是通过NGINX汇集所有请求。 根据path(urlpath),某个路由domain.com/graphql将通过NGINX传递给不同的docker集装箱。 domain.com/graphql基本上是我的API端点。 我遇到的问题是客户端上的JS所做的所有Ajax / Relay客户端请求都是从NGINX 请求: Request URL:http://domain.com/graphql Request Method:POST Status Code:301 Moved Permanently Remote Address:192.168.99.100:80 Response Headers view source Connection:keep-alive Content-Length:185 Content-Type:text/html Date:Thu, 08 Sep 2016 15:14:02 GMT Location:http://domain.com/graphql/ Server:nginx/1.11.3 Request Headers view source accept:*/* Accept-Encoding:gzip, deflate Accept-Language:en-US,en;q=0.8,it;q=0.6 Cache-Control:no-cache Connection:keep-alive Content-Length:620 content-type:application/json Host:nomralph.com Origin:http://domain.com Pragma:no-cache Referer:http://domain.com/ User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS […]