我已经Google,searchStackOverflow和这里。 不过,我不能完全理解什么或为什么有人会使用Squid。 到目前为止,我所能find的是,它是某种caching,可以减less你的服务器(即Apache)所要做的工作。 那么有人可以澄清到底是什么鱿鱼,更重要的是,为什么我要使用Squid? 我有一个大的社交网站,所以也许这将有利于服务的图像或东西,我目前正在运行lighttpd从Apache分开,只为服务图像。
我只在两台后端服务器前面设置了一个HAProxy,并configuration了一个特定的configuration:任何请求都应该到达服务器A; 但是,如果服务器A返回一个5xx错误代码,则所有的请求都应该到达一个备份服务器B.当A返回“up”时,所有的请求都将转到A. 我正在尝试这个configuration: backend example_cluster balance roundrobin option httpclose option forwardfor option httpchk HEAD /ping.html HTTP/1.0\r\nHost:www.example.com http-check disable-on-404 default-server error-limit 1 on-error mark-down redirect scheme https if !{ ssl_fc } server node1 1.2.3.4:80 check observe layer7 server node_back 5.6.7.8:443 backup ssl verify none 但是这不起作用有两个原因: 即使node1(A)启动,所有的请求都被路由到服务器node_back(B)。 似乎没有HTTP服务器对服务器A执行; 或更好,在系统日志我没有看到关于服务器Aclosures任何错误。 如果我删除“选项httpchk”行,并在下面的两行; 我也删除服务器A中的“观察层7”; HAProxy通过将所有请求路由到节点A工作。但显然,当服务器A返回500时,HAProxy不会切换到B.所以,我假设问题可能出在httpchkconfiguration选项中。
我有一个Apache反向代理,目前反向代理几个网站。 不过,我现在要添加一个新的网站(让我们称之为newsite.com)应该只能由某些IP访问。 这是可以使用Apache作为反向代理吗? 我使用VirtualHosts为正在被代理的网站。 我已经尝试使用允许/拒绝指令结合位置语句。 例如: <VirtualHost *:80> Servername newsite.com <Location http://newsite.com> Order Deny,Allow Deny from all Allow from xxxx </Location> <IfModule rewrite_module> RewriteRule ^/$ http://newsite.internal.com [proxy] </IfModule> 例如,我也尝试在Proxy指令中特别为站点configuration允许/拒绝 <Proxy http://newsite.com/> Order deny,allow Deny from all Allow from xxxx </Proxy> 但是,对于其他代理站点,我仍然有这个定义。 <Proxy *> Order deny,allow Allow from all </Proxy> 无论我做什么,似乎都可以从任何地方访问。 这是因为所有其他代理站点的定义。 有没有一个命令,它适用于代理指令。 我在*之前和之后都有一个newsite,也在VirtualHost声明中。
我正在开发一个电子商务平台的caching系统,它将使用反向代理进行caching。 我打算通过使用正确的HTTP / 1.1头来处理失效。 也就是说,我将在第一代内容上设置一个ETag,并在应用程序中cachingETag值。 Cache-Control头将指定“must-revalidate”,所以代理应该在随后的ETag请求上设置If-None-Match头。 应用程序将查找caching的ETag值,如果匹配,则会发送一个304响应,否则它将生成一个完整的200响应。 我希望使用nginx,但我不能肯定它支持ETags(文档指出它不,但也许他们已经过时?)。 清漆是另一种select,但我在这里也不积极。 哪些逆向代理服务器对ETag有完整的支持? 我希望它实际上caching多个版本,所以我可以做分裂testing,而不必禁用caching。 也就是说,HTTP / 1.1指定客户端可以发送带有多个ETag值的If-None-Match,并且服务器应该响应与哪个ETag匹配(如果有的话)。 如果反向代理保存了多个副本而不是最后一次看到的值,并让服务器在每个要使用的请求上指定,那将是理想的。
我使用nginx作为后端web服务器前面的反向ssl代理,它能够执行HTTP / 2.0。 我注意到nginx通过HTTP / 1.1而不是HTTP / 2.0代理请求到后端服务器。 是否有可能告诉nginx使用未encryption的HTTP / 2.0连接? 这会提高性能吗?
我正在构build一个内部API的代理,以允许客户端进行连接,而无需安装自签名证书。 客户端(仅在内部构build,拥有和使用)将通过SSL连接到nginx框,我使用XSendfile在应用程序级别validation凭据(一个Rails应用程序)。 如果凭证是有效的,则连接被传回到nginx,在那里它使用proxy_pass将连接发送到上游服务器。 现在,这对于标准的http连接非常有用,但是我正试图弄清楚如何将我们的证书添加到组合中。 这个问题与这个问题几乎相同,但是证书要求很尴尬。 这甚至可以用nginx吗? 有更好的解决scheme吗? 我也解决了客户端的HTTP – > nginx,以及从nginx到API的自签名证书。
我有一个nginx设置,接收来自外部主机的请求,并将它们代理到内部服务器。 configuration看起来像这样: server { listen 10.0.0.66:443; server_name my.example.com; root /websites/my.example.com ssl on; ssl_certificate /websites/ssl/my.example.com.crt; ssl_certificate /websites/ssl/my.example.com.key; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $http_host; location / { proxy_pass https://10.0.0.100:3000/; } } 为了实验/testing目的,我希望能够运行内部主机通过任意二进制回复的内容,并回应二进制响应的内容。 例如 ,如果我想在代理上缩小html,我将通过htmlcompressor运行服务器的响应,然后将输出作为代理的响应发送到客户端。 最终的结果是最终客户端得到缩小的HTML。 我知道有各种各样的插件和nginx的例子来完成这个本地服务的数据,但如何设置它的代理?
我有一个代理注入一些头,但我想修改它,所以它只设置头,如果他们不存在: <Location /api> RequestHeader set MY_HEADER "value" ProxyPass http://127.0.0.1:8000/api ProxypassReverse http://127.0.0.1:8000/api </Location> 这可能吗?
我似乎无法在nginx中find与Apache的ProxyPreserveHost相同的http://httpd.apache.org/docs/2.0/mod/mod_proxy.html#proxypreservehost选项。 这是将代理逆向到虚拟主机所必需的。 它所做的是将浏览器提供的主机名replace为下游服务器的主机名。 它存在吗?
我试图转换反向代理使用有趣的Apache mod_rewrite设置使用Nginx来代替(由于外部的担忧,我们正在从Apache移动到Nginx,大多数一切正常,除了这部分)。 我原来的设置是读取一个HTTP cookie(由某个应用程序设置),根据它的值,将反向代理指向不同的后端。 它是这样的: RewriteCond %{HTTP_COOKIE} proxy-target-A RewriteRule ^/original-request/ http://backend-a/some-application [P,QSA] RewriteCond %{HTTP_COOKIE} proxy-target-B RewriteRule ^/original-request http://backend-b/another-application [P,QSA] RewriteRule ^/original-request http://primary-backend/original-application [P,QSA] 我试图达到使用Nginx相同,我的初始configuration是这样的(其中“proxy_override”是cookie的名称): location /original-request { if ($cookie_proxy_override = "proxy-target-A") { rewrite . http://backend-a/some-application; break; } if ($cookie_proxy_override = "proxy-target-B") { rewrite . http://backend-b/another-application; break; } proxy_pass http://primary-backend/original-application; } 但事实并非如此。 我试着看看Nginx是否可以通过写主代理来redirect到基于${cookie_proxy_override}东西来读取我的cookie,我可以看到它读取的内容很好,但是if似乎总是失败。 我的下一个尝试,根据Rikih的回答是这样的: location /original-request […]