我无法使caching系统与Joomla 3.x一起工作。 这是一个特别的问题,因为服务器应该执行HTTPS / TLS连接。
Joomla系统在Debian Wheezy的Apache2上运行。
我试图设置清漆,但发现清漆无法终止TLSstream量,所以我需要将其路由回Apache或HAProxy。 但是,如果我这样做,Joomla会混淆请求头被重写,而请求是通过所有这些层交付,Joomla结束卡住redirect循环或答复与服务器错误。
有没有一个干净的方式来放置一个caching,甚至是在Joomla前面的负载均衡器,而没有源于另一台服务器上发生SSL终止的redirect问题?
正如你所提到的。 而Varnish不处理SSL,则可以使用传递给Varnish的SSL终止代理。 SSLterminal代理可以添加或删除标题和更改端口,所以你应该能够创build一个stream程,避免redirect循环。
stream行的SSL终止代理是磅,Stunel,Nginx和HAProxy。 您需要的function范围应该决定您使用的function。 Nginx和HAProxy的最新版本使您能够使用SPDY,并且在快速search之后,我会说目前使用Nginx和Varnish的指南比其他的平衡器更多。
对于Nginx作为SSL终止代理,通常会提出以下build议:
server { listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; location / { proxy_pass http://127.0.0.1:80; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Port 443; proxy_set_header Host $host; } }
这是从端口443采取SSL,解密并将其传递到本地主机端口80。 它正在添加X-Forwarded-Proto https头,表明这是(是?)SSLstream量。 该configuration还添加了其他标题帮助读取日志等
使用本地主机上的Varnish侦听:80会像处理正常stream量一样处理请求,并将其传递给Apache和Joomla。
在Apache中,您将需要SetEnvIfNoCase X-Forwarded-Proto https HTTPS=on 。
所有这一切都应该意味着Joomla会计算出正在发生的事情并做出适当的performance。