我目前在我们的开发网站前运行 Varnish 作为反向代理,在部署到生产之前进行测试。我不得不处理的一件事是日志记录:在直接访问世界中,Apache 将客户端 IP 地址记录到access_log和error_log。当每个客户端连接都来自我们的 Varnish 框时,这会不太有用。
我已经使用SetEnvIf和进行了一些自定义LogFormat,现在我们可以access_log智能地从REMOTE_HOST或记录适当的 IP X-Forwarded-For,具体取决于传入连接的来源。error_log虽然这没有任何作用。据我所知,我无法覆盖此日志中的客户端 IP。
那么,您登录反向代理世界的解决方案是什么?我是否应该取消标准的 Apache 日志记录并将我的精力集中在其他地方,即。在代码中?我对这里的使用统计和安全审计都很感兴趣。
我在 Unicorn 上部署了一个生产 Rails 应用程序,前面有 nginx 用于静态文件服务。我现在需要 Varnish 的一些功能,我想知道如何引入它。
有些人把 Varnish 放在前面,而有些人把 nginx 放在前面。我还没有听说有人只使用Varnish 和 Unicorn,但我想这是有效的。
前面有 nginx 的人似乎是为了 gzip 和 SSL 终止而这样做的。SSL 与我的应用程序无关,但 gzip 是。我想清漆很快就会得到它,所以为了简单起见,我可以不用一段时间。
这两种方法还有其他优点/缺点吗?是否有规范的最佳实践布局?
当我尝试反向代理时不确定发生了什么,但我不断收到错误 500。我启用了 mod_proxy 和 mod_proxy_html,我的反向代理的 conf 文件如下所示:
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /panel http://mydomain.com:8005/
ProxyPassReverse /panel http://mydomain.com:8005/
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几乎所有的东西,只要用斜杠和不带斜杠来写相反的东西。当我
tail /var/log/apache2/error.log
[Tue Dec 06 12:58:00 2011] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Tue Dec 06 12:58:00 2011] [notice] suEXEC mechanism enabled (wrapper: /usr/lib/apache2/suexec)
[Tue Dec 06 12:58:00 2011] [notice] Digest: generating secret for digest authentication ...
[Tue Dec 06 12:58:00 2011] [notice] Digest: done
PHP Deprecated: …Run Code Online (Sandbox Code Playgroud) 我对 CloudFlare 提供的保护有点困惑。我www通过带有橙色云的CloudFlare和另一个direct带有灰色云的子域(假设)引导子域。但是当我tracert到www.example.com或direct.example.com路由和结束 IP 是相同的。
我期待www子域以某些 CloudFlare IP 结束。正常吗?
我想让 iptable 规则永久化,所以如果服务器重新启动,我将不必再次添加规则。
特别是我与 nginx 相关的规则是 apache 的反向代理。
iptables -t nat -A PREROUTING -p tcp -s ! 266.266.266.266 --dport 80 -j REDIRECT --to-ports 85
我试过了,iptables-save但要么我没有使用正确的文件,要么对我不起作用。
请注意,我使用服务器的 directadmin 控制面板以及http://configserver.com/cp/csf.html
因此,这些可能会干扰,因为即使没有多次重启服务器,规则也不存在。
我有一个设置,其中我的 Tomcat 实例前面是带有 mod-proxy 的 Apache 服务器。我需要在反向代理端提供静态内容,以防身份验证关闭我的应用程序会话(重型 ajax 应用程序)。
这个想法是浏览器正在请求一些静态内容,例如:
http://myreverseproxy.com/app/sc/skins/Enterprise/images/SectionHeader/opener_closed.png
Run Code Online (Sandbox Code Playgroud)
Apache 将请求转发给将提供图像的 Tomcat。我需要它由 Apache 提供服务,这可能吗?
谢谢!
我已经阅读了很多关于这个问题的内容(包括本网站中的所有主题),但无法做出决定性的决定。
对于非常高负载的站点(每天数百万用户),什么被认为更好(性能和安全方面):
我不明白的是 - 如果 Nginx 可以运行动态内容,为什么还要使用 Apache?
在谷歌搜索并简要浏览 varnish 文档后,我找不到对此的参考。例如,我可以在清漆 vcl 中执行以下操作吗?
include sites-enabled/*.vcl
Run Code Online (Sandbox Code Playgroud) 我正在努力让 Apache 为 Django 项目提供静态文件。我的 VirtualHost 有:
Alias /static/ /home/jonathan/pragmatometer/static/
ProxyPass / http://localhost:8000/
ProxyPassReverse / http://localhost:8000/
Run Code Online (Sandbox Code Playgroud)
但是对 /static/css/style.css 的请求是由 Django 进程提供的,而不是对 /home/jonathan/pragmatometer/static/css/style.css 的静态拉取。
我该怎么做才能让 Alias 胜过代理?我可以尝试为 /load/、/save/、/admin/ 拼凑几个 ProxyPass / ProxyPassReverse 定义,但这肯定是错误的方式。
那么正确的方法是什么?
该站点设置在localhost:8080,反向代理使用localhost:8080/myProxy.
处理标准链接时,一切都很好。我可以查看代理 url 并按预期查看所有内容。从链接localhost:8080/myProxy/default.aspx进入localhost:8080/myProxy/about.aspx预期。
我遇到的问题是,在使用 .NET 的地方Response.Redirect(),url 更改为网站的实际位置,而不是代理。
即链接来自localhost:8080/myproxy/default.aspx-> localhost:8080/about.aspx。
请问我该如何解决?
这是我的配置:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<urlCompression doStaticCompression="false" doDynamicCompression="false"
dynamicCompressionBeforeCache="false" />
<rewrite>
<rules>
<rule name="Reverse Proxy to my site" stopProcessing="true">
<match url="^myProxy/(.*)" />
<action type="Rewrite" url="http://localhost:8080/{R:1}" />
</rule>
</rules>
<outboundRules>
<rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1">
<match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script"
pattern="^http(s)?://localhost:8080/(.*)" />
<action type="Rewrite" value="/myProxy/{R:2}" /> …Run Code Online (Sandbox Code Playgroud)