我已经服务后端(一个是nginx +乘客)通过ESI结合。 由于我不想没有gzip / deflate,SSL清漆不能完成这项工作。 所以我想了下面的设置: http://img693.imageshack.us/img693/38/esinginx.png 你怎么看? 矫枉过正?
我想在Apache RHEL 5服务器上运行Apache和Tomcat,使用Apache处理Ruby on Rails应用程序(通过mod_rails / Passenger)和Tomcat处理Java应用程序。 在Apache下,每个Rails应用程序将有一个URL和虚拟主机。 这些URL已经在我们的DNS服务器中configuration为指向机器。 在Tomcat下,每个Java应用程序都有一个这样的URL: ourserver.ourcompany.com/app1等 服务器已经启动并运行在端口80上运行的Tomcat 6并提供多个Java应用程序。 我想添加Apache并重新configuration。 我熟悉如何configuration唯一的Apache服务器来使用Passenger来托pipeRoR应用程序。 我只是不知道如何让Apache和Tomcat一起工作。 我通过谷歌search(例如, 这个 )发现了各种资源和讨论,但他们往往有点粗略和不完整,或者他们似乎不符合我想要做的。 我链接的人似乎是如果你想发送所有的请求到Tomcat,而不仅仅是某些,并有Apache处理其他人。 有人可能会提出一个示例configurationserver.xml和httpd.conf ,或者可能指向我一些更详细的资源?
我有一个反向代理Apache将请求移动到Tomcat servlet。 Apache中的虚拟主机上的configuration是: <VirtualHost 10.10.10.10:80> ProxyPass /Site1/ServLet1 http://1.1.1.1/Site1/ServLet1 ProxyPassReverse /Site1/ServLet1 http://1.1.1.1//Site1/ServLet1 ProxyPass /Site2/ServLet2 http://2.2.2.2/Site2/ServLet2 ProxyPassReverse /Site2/ServLet2 http://2.2.2.2/Site1/ServLet1 </VirtualHost> 基本上,如果涉及到10.10.10.10和requests /Site1/ServLet1 ,请将其路由到/Site1/ServLet1 。 如果我添加 <VirtualHost 10.10.10.10:80> ProxyPass /Site1/ServLet1 http://1.1.1.1/Site1/ServLet1 ProxyPassReverse /Site1/ServLet1 http://1.1.1.1//Site1/ServLet1 ErrorDocument 404 /customerrors/site1/404.html ProxyPass /Site2/ServLet2 http://2.2.2.2/Site2/ServLet2 ProxyPassReverse /Site2/ServLet2 http://2.2.2.2/Site1/ServLet1 </VirtualHost> 所以它会显示site1的自定义错误(我设置ErrorDocument),它将被提供给两个。 我怎样才能维护这种configuration每个网站有不同的404错误页面? 谢谢 编辑: 如果我根据下面的注释修改configuration,如: <Location /Site1/ServLet1/> ProxyPass http://1.1.1.1/Site1/ServLet1 ProxyPassReverse http://1.1.1.1/Site1/ServLet1 ErrorDocument 404 /customerrors/site1/404.html […]
我有5个Web服务器(Apache / mod_perl)在Amazon EC2 Elastic Load Balancing后面,当我将代码部署到Web服务器时,我正在这样做。 对于每台机器,closuresApache 更新代码 重新启动服务器并继续下一个服务器 我想当我的服务器closures时,ELB不会将请求分发到我的服务器,但请求仍然在服务如何? 我认为更好的方法是 停止接受ELB的新要求 有时候睡觉,只有在所有请求都被回复的情况下closuresWeb服务器 更新代码 再次启动服务器 但是,如何从本地服务器执行(1)和(2)? 我需要使用AWS API吗? 或者其他简单的方法来做到这一点? 谢谢。
我正在尝试将Apache2设置为solr的反向代理。 Apache和Solr在同一台机器上。 Apache也正常服务于其他的东西。 /etc/apache2/config.d/ solsearchconfiguration文件 # Proxy specific settings ProxyRequests Off ProxyPreserveHost Off <Proxy *> AddDefaultCharset off Order deny,allow Allow from all </Proxy> ProxyPass /solrsearch http://localhost:8983/solr/collection1/browse ProxyPassReverse /solrsearch http://localhost:8983/solr/collection1/browse 现在尝试http:// localhost / solsearch给我的http:// localhost:8983 / solr / collection1 / browse的第一页,但与破碎的布局(如CSS缺less)。 结果:apache的error.log : File does not exist: /var/www/solr, referer: [http://192.168.1.150/solrsearch]
由于我开始使用逆向代理(Apache2的mod_jk)后面的应用程序,我注意到一些页面将不会加载(他们将没有反向代理设置)。 这是一个微妙的错误,我不得不检查一下,感谢谷歌浏览器: 无法加载资源:net :: ERR_CONNECTION_RESET 。 简单地说,一个JavaScript文件将被部分加载(从〜50KB中加载〜12KB)。 我认为Apache2,mod_jk,AJP或Jetty有问题。 但后来我参与了一个调查,我将使用不同的浏览器以及不同的networking。 结论:只有当我使用具有静态 IP的networking时,才会出现此错误(ERR_CONNECTION_RESET)。 我降低了一个路由器的安全级别,但徒劳无益。 具有静态IP的networking是否具有更高级别的安全性? 如何克服这个问题? 这是一个僵局,因为反向代理主要注定要利用我们卖点的静态IP地址来提高安全级别。
许多昂贵的12-25k解决scheme似乎只能同时使用4k SSL连接。 Loadbalancer.org有许多HTTP请求的价格合理的解决scheme,但仅限于2k SSL连接。 对于像我这样活跃的网站来说,这足够吗? 有没有更好的方法来做到这一点,而不是依靠负载均衡器,可能或不可能有一个ASIC SSL卸载协处理器,我可以得到超过17k机器的4k天花板? 他们是否制作可以进入pci-x / express端口的ASIC SSL卡? (即使在谷歌我也找不到)。 是否有构build自己的解决scheme的指南/build议规范,可以专门处理SSLencryption/解密? 我们正在寻找高可用性/负载平衡型解决scheme。 即使这意味着我们使用单独的负载平衡器(一前一后)与反向代理服务器克服SSL的优势。 PCI合规也是一个问题,所以任何build议都应该包含在这些指导内。
我有两个启用了mod_proxy的Apache服务器。 我想知道如何使用相同的端口(80)将“请求”从“Apache服务器A”传递到“Apache服务器B”。 在“服务器A”与内部IP:192.168.0.5我configuration了DNS,我也用它作为我的邮件服务器。 在“服务器B”与内部IP:192.168.0.10我有我自己的云服务器。 今天当我访问wwww.mydomain.com或www.mydomain.com/webmail一切正常,因为内容都在“服务器A”,我需要的是当有人试图访问owncloud.mydomain.com他们可以访问我的服务器B而不会将它们redirect到owncloud.mydomain.com:81等其他端口,我只想使用端口80。 其实我得到一个redirect循环,因为当我尝试redirect,我猜“服务器A”是由自己得到相同的请求。 我已经设置我的虚拟主机在同一个“服务器A”工作,我想要“redirect”到另一台服务器使用相同的端口和URL(owncloud.mydomain.com)。 我不想使用另一个端口redirect。
操作系统:debian稳定(挤压)nginx:挤压backports 1.2.1-2〜bpo60 + 1 try_files对我来说很陌生。 这符合预期,如果没有find$ uri,则尝试使用localy – >使用@static位置 try_files $uri $uri/ @static; 如果我访问现有的文件位于$ uri或@static,并且只有在@static位置没有find任何文件时才提供404,那么只需在末尾添加= 404就可以了。 try_files $uri $uri/ @static =404; 在@static重新开始工作之前放置= 404。 为什么? 如果文件不是位于$ uri或$ uri /位置,而是位于@static,则应该导致404,因为= 404是@static(为了我的理解)。 如果我把访问一个位于$ uri的文件,它是从nginx正确的服务(不击中@static后端或= 404) try_files $uri $uri/ =404 @static ; 我很困惑 编辑:我的目标是:testing如果文件是本地的,然后检查所有上游服务器的文件,如果没有在这些位置find返回404 configuration: upstream domain.com_upstream { server yyy.yyy.yyy.yyy:8000 weight=10 max_fails=3 fail_timeout=3s; server zzz.zzz.zzz.zzz:8020 weight=10 max_fails=3 fail_timeout=3s; } […]
我有几个API端点,我想在一个单独的/api位置下进行服务,子path到达不同的端点。 具体来说,我希望webdis在/api和/api/mypath提供的专有API可用。 我并不担心与webdis API发生冲突,因为我使用的子path不太可能与redis命令名冲突,而且也完全控制了API的devise以避免冲突。 这里是我一直在testing的我的testing服务器的configuration文件: server { listen 80; server_name localhost; server_name 192.168.3.90; server_name 127.0.0.1; location / { root /home/me/src/phoenix/ui; index index.html; } # temporary hardcoded workaround location = /api/mypath/about { proxy_pass http://localhost:3936/v1/about; } location /api { rewrite ^/api/(.*)$ /$1 break; proxy_pass http://localhost:7379/; } # tried this but it gives "not found" error #location ^~ […]