Articles of 反向代理

Nginx反向代理服务器没有正确提供caching的主页

我最近为Web开发客户端configuration了一个新的服务器,并遇到了一个有趣的问题。 该网站的stream量相当高,但CMS在实时生成页面时相当繁重且效率低下。 当需要直接从CMS生成页面时,这会显着降低页面加载速度。 不幸的是CMS与Apache有许多关系,所以通过nginx提供页面并不是一个可行的select。 另外,CMS的Apache .htaccess文件必然有些复杂且涉及到,因此Apache提供的请求相对较慢。 由于这些因素,我将nginxconfiguration为反向代理服务器,并为CMS编写了一个插件,将页面呈现为静态HTML,并将其存储在特定的caching目录中。 我的意图是configurationnginx直接提供caching文件的请求,从而完全避免apache(更重要的是,避免CMS)。 到目前为止,这个过程已经顺利进行了,我有nginx成功地为CMS生成的caching文件提供服务(与CMS的500 + ms相比,响应时间很短,为25ms),如果caching文件没有传递到CMS存在,除了一个例外:主页。 出于某种原因,主页位置块似乎并没有被激活。 这是网站configuration(匿名): # reverse proxy config for example.com, serves all non-dynamic files server { listen 80; server_name example.com www.example.com; root /var/www/example.com/; add_header "X-Index-0" "block-0"; location ^~ ^(index)?\.?(htm|html|php|asp|aspx)?$ { try_files /var/www/example.com/cache/index.html @apache; add_header "X-Index-1" "block-1"; } location / { try_files /var/www/example.com/cache/index.html @apache; add_header "X-Index-2" "block-2"; […]

Linux – 反向代理 – 什么是function强大的反向代理最简单的工具?

我在一组Debian服务器上为每个客户(customerx.domain.com)设置一组URL。 根据一些请求参数,在同一台服务器上将传入请求redirect到不同服务器和/或不同服务的最佳工具是什么? 例如 : https://generic.domain.com/redir?customer=1&name=x 将被redirect到 https://customerx.domain.com/app1?name=x 和 https://generic.domain.com/redir?customer=2&name=x 将被redirect到 https://customery.domain.com/app2?name=x

使用Apachevariables

我正在尝试使用Apache的OpenID身份validation模块。 根据这个页面 ,我应该能够使用REMOTE_USER Apachevariables来识别用户。 我想通过这个作为头到上游应用程序(我使用Apache进行身份validation和反向代理)。 我的Apache网站configuration如下: <VirtualHost *:80> ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ <Location /> AuthType OpenID require valid-user AuthOpenIDAXRequire email http://axschema.org/contact/email @muller\.io$ AuthOpenIDAXUsername email RequestHeader set x-username $REMOTE_USER </Location> </VirtualHost> 我已经search和search,但我能find的最多的是如何在这个上下文中使用环境variables。 我已经validation了一个硬编码的string工作(实际上上面传递string"$REMOTE_USER"到我的应用程序)。 如果mod_auth_openid 在Apache中设置了REMOTE_USERvariables,那么我怎样才能将这个上游传递给我的应用程序呢?

IIS 7.5反向代理URL使用gzip重新写入网站

如果我们拥有www.ourdomain.com,并想重写www.google.comurl,我们将如何处理gzip压缩说谷歌域名。 我试图做一个概念certificate,我相信这个问题是我们正在尝试重新使用gzip的网站,所以IIS无法读取内容? 我禁用了所有压缩。 我们需要某种先决条件吗? HTTP错误500.52 – URL重写模块错误。 当HTTP响应的内容被编码(“gzip”)时,不能应用出站重写规则。 <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <urlCompression doStaticCompression="false" doDynamicCompression="false" dynamicCompressionBeforeCache="false" /> <rewrite> <outboundRules> <rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1"> <match filterByTags="A, Form, Img" pattern="https://google.com/(.*)" /> <action type="Rewrite" value="http{R:1}://ourdomain.com/{R:2}" /> </rule> </outboundRules> <rules> <rule name="ReverseProxyInboundRule1" stopProcessing="true"> <match url="(.*)" /> <action type="Rewrite" url="http://google.com/{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>

SetEnvIfNoCase指令匹配ip失败

我试图通过一个Apache反向代理基于客户端IP地址设置一些特定的标题。 我尝试使用SetEnvIfNoCase / SetEnvIf,但我不知道怎么写一个正确的正则expression式🙁 这里我试图在httpd.conf中设置(假设反向代理指令正常 – 它们是): SetEnvIfNoCase Remote_Addr "192\.168*" user_location_internal RequestHeader set x-acme-user-location internal env=user_location_internal 可以说,请求来自192.168.1.100。 然后正则expression式应该匹配 – 我尝试了几个在线validation器声称是perl兼容和192.168.1.100匹配到“192.168 *”。 SetEnvIf的文档也声明为perl reg ex兼容。 但是它不起作用。 唯一有效的语法如下: SetEnvIfNoCase Remote_Addr 192* user_location_internal RequestHeader set x-acme-user-location internal env=user_location_internal 然后设置头文件,这个问题与正则expression式语法有关。 所以我最好的猜测是,我没有正确地逃脱这个点。 但根据: http : //perldoc.perl.org/perlre.html#Regular-Expressions反斜杠是转义元字符的正确符号。 任何猜测什么是错的?

无法将Nginxconfiguration为另一台服务器上的elasticsearch的反向代理

我试图在服务器A上使用Kibana来访问服务器B上的elasticsearch。 在服务器B上使用基本身份validation进行elasticsearch保护。 Kibana也受到服务器A上的基本身份validation(和相同的密码)的保护。 我使用这个configuration(从这里启发) 我只是通过input以下地址来尝试redirect,我得到一个错误500: http://A.com/es/_search 在日志中我有: 2014/06/01 16:45:55 [error] 3721#0:* 1重写或内部redirect周期内部redirect到“/ es / _search”,客户端:192.168.50.1,服务器:A.com,请求:“ GET / es / _search HTTP / 1.1“,主机:”A.com“ 任何想法可能是错的?

在lighttpd中重写位置响应头

我有一个lighttpd 1.4.35的实例监听httpsstream量,并将其反向代理到后端服务器。 也就是说, .———-. .———-. client —https–> | lighttpd | —http–> | back-end | <–https— | | <–http— | server | `———-' `———-' 当我通过https(通过https)对代理页面进行HTTP发布时,后端服务器正在使用http而不是https返回Location标头。 Location: http://lighttpd_url/some_page.htm 有没有办法lighttpd可以重写位置标题中的url? 我在lighttpd 1.5.x中看到,proxy-core有一个rewrite-response指令,我想这就是它的样子: proxy-core.rewrite-response = ( "Location" => ( "^http://xyz/(.*)" => "https://xyz/$1" ), ) 但是,我如何重写lighttpd 1.4.x中的Location标题?

基本身份validation是否安全,当它通过SSL上的反向代理?

希望有人能让我知道如果我在正确的轨道上。 我在我的networking中的文件服务器上使用IIS。 我有一个apache2服务器,采取所有的HTTP和HTTPS请求,并通过反向代理的方式发送到正确的服务器。 在networking中,您可以通过HTTP访问IIS,并会根据Windows身份validation提示inputUN / PW。 很显然,互联网并不安全,特别是从不可信networking访问时。 所以我的解决scheme是: 远程networking将SSL连接到我的反向代理服务器。 反向代理连接HTTP到我的IIS服务器远程客户端获取基本身份validation对话框,虽然反向代理使用其SSL连接,我认为它的安全?

使用IIS作为反向代理时的自定义错误页面

我已经configuration了IIS作为开发服务器的反向代理(如果您好奇,dartlang的pub服务)。 我这样做是因为开发服务器不支持自定义错误页面,我需要他们在本地工作。 我已经在IIS中设置了自定义错误页面,但是没有提供它 – 它通过源服务器的默认404页面。 是否有可能使反向代理服务于自己的自定义页面的404错误?

Nginx不通过HTTPS提供静态文件

我正在尝试在Apache之前设置Nginx作为反向代理并提供静态文件。 我301 http到https,并提供https部分中的指令通过别名提供静态文件夹。 但是,由于一些奇怪的原因,文件通过http服务。 这是我的Nginx站点configuration: server { listen 80; listen [::]:80; access_log off; server_name site.com www.site.com; return 301 https://$server_name$request_uri; } server { listen 443; ssl on; ssl_certificate /usr/local/sslcert/my.crt; ssl_certificate_key /usr/local/sslcert/my.key; access_log off; server_name site.com www.site.com; location /public/ { alias /var/www/public/; expires max; add_header Pragma public; add_header Cache-Control "public"; } location / { root /var/www/; index […]