小编dav*_*ley的帖子

清漆配置仅缓存未登录的用户

我有一个以 varnish+nginx 为前端的 Ruby on Rails 应用程序。由于除非您是登录用户,否则大多数站点内容都是静态的,因此我想在用户注销时使用清漆大量缓存站点,但仅在用户登录时缓存静态资产。

当用户登录时,他们的 Cookie: 标头中会出现 cookie 'user_credentials',此外我需要跳过缓存 /login 和 /sessions 以便用户可以首先获得他们的 'user_credentials' cookie .

默认情况下,Rails 不会设置缓存友好的 Cache-control 标头,但是当用户未登录时,我的应用程序会设置一个“public,s-max-age=60”标头。Nginx 设置为返回“远未来”过期标头对于所有静态资产。

我目前的配置在登录时完全绕过缓存,包括静态资产 - 并在注销时为所有内容返回缓存 MISS。我花了几个小时绕圈子,这是我目前的 default.vcl

    director rails_director round-robin {
  { 
    .backend = { 
      .host = "xxx.xxx.xxx.xxx"; 
      .port = "http";
      .probe = {
        .url = "/lbcheck/lbuptest";
        .timeout = 0.3 s;
        .window = 8;
        .threshold = 3;
      }
    } 
  }
}

sub vcl_recv {

  if (req.url ~ "^/login") {
    pipe;
  }

  if (req.url ~ "^/sessions") {
    pipe;
  } …
Run Code Online (Sandbox Code Playgroud)

cache varnish reverse-proxy ruby-on-rails

5
推荐指数
1
解决办法
1万
查看次数

IPvsadm 在 wlc 调度程序上的平衡不均衡

出于某种原因,当使用 wlc 或 lc 调度程序时,ipvsadm 似乎并没有平等地平衡我的真实服务器之间的连接。一台真正的服务器会收到大量请求,而其他服务器收到的连接相对较少。

我的 ldirectord.cf 文件如下所示:

quiescent     = yes
autoreload    = yes
checktimeout  = 10
checkinterval = 10

# *.example.com http
virtual = 192.0.2.111:http
    real = 10.10.10.1:http  ipip    10
    real = 10.10.10.2:http  ipip    10
    real = 10.10.10.3:http  ipip    10
    real = 10.10.10.4:http  ipip    10
    real = 10.10.10.5:http  ipip    10
    scheduler = lc
    protocol = tcp
    service = http
    checktype = negotiate
    request = "/lb"
    receive = "Up and running"
    virtualhost = "site.com"
    fallback = 127.0.0.1:http
Run Code Online (Sandbox Code Playgroud)

我认为可能导致问题的奇怪事情(但我真的不确定)是 ipvsadm …

linux ldirectord lvs ubuntu-10.04

5
推荐指数
1
解决办法
3703
查看次数

Stunnel 过多的客户

我正在尝试连接 stunnel 和 haproxy 以将 https 连接转发到某些后端服务器。

我已经正确设置了 haproxy,而且我似乎正确设置了 stunnel。问题是,当我在一段时间后通过负载测试进行设置时,我开始看到这些日志条目(在开始出现连接被拒绝错误之前,我已经包含了来自正确连接的最后几个条目):

2010.05.05 11:23:29 LOG7[3498:3086792368]: https accepted FD=510 from 10.195.158.225:42722
2010.05.05 11:23:29 LOG7[3498:3035233168]: https started
2010.05.05 11:23:29 LOG7[3498:3035233168]: FD 510 in non-blocking mode
2010.05.05 11:23:29 LOG7[3498:3035233168]: TCP_NODELAY option set on local socket
2010.05.05 11:23:29 LOG7[3498:3035233168]: Waiting for a libwrap process
2010.05.05 11:23:29 LOG7[3498:3086792368]: https accepted FD=511 from 10.195.158.225:42723
2010.05.05 11:23:29 LOG7[3498:3035167632]: https started
2010.05.05 11:23:29 LOG7[3498:3035167632]: FD 511 in non-blocking mode
2010.05.05 11:23:29 LOG7[3498:3035167632]: TCP_NODELAY option set on local socket
2010.05.05 11:23:29 …
Run Code Online (Sandbox Code Playgroud)

ssl http proxy haproxy stunnel

3
推荐指数
1
解决办法
5242
查看次数