Agnaldofreitas Postado Junho 7, 2018 Compartilhar Postado Junho 7, 2018 (editado) Olá, quero saber como usar o varnish cache com vários sites e ips, meu arquivo de configuração está assim conferir abaixo: * uso cpanel * já correto pra cada site, mais vão tudo pra pagina default do cpanel * como adapta esse codígo pra aceita meus segundos ips? Citar backend default { .host = "127.0.0.1"; .port = "8080"; } # Enable flushing access only to internals acl flushers { "127.0.0.1"; } sub vcl_recv { # Set backend depending on host set req.backend = default; # Set a unique cache header with client ip if (req.restarts == 0) { if (client.ip != "127.0.0.1") { if (req.http.X-Forwarded-For) { set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip; } else { set req.http.X-Forwarded-For = client.ip; } } } # Allow the backend to deliver old content up to 1 day set req.grace = 24h; # Only allow known requests if (req.request != "GET" && req.request != "HEAD" && req.request != "PUT" && req.request != "POST" && req.request != "TRACE" && req.request != "OPTIONS" && req.request != "DELETE") { /* Non-RFC2616 or CONNECT which is weird. */ return (pipe); } # If neither GET nor HEAD request, send to backend but do not cache # This means that POST requests are not cached if (req.request != "GET" && req.request != "HEAD") { return (pass); } # Strip hash as the server doesn't need it if (req.url ~ "\#") { set req.url = regsub(req.url, "\#.*$", ""); } # Always cache the following file types for all users if (req.url ~ "\.(png|gif|jpeg|jpg|ico|swf|css|js|pdf|txt)(\?|$)") { unset req.http.Cookie; } # If any authorisation was set do not cache if (req.http.Authorization || req.http.Cookie ~ "fe_typo_user") { return (pass); } # If we work in backend don't cache anything if (req.http.Cookie ~ "be_typo_user") { return (pass); } else { # Pass all no_cache=1 sites and eID scripts if (req.url ~ "(\?|&)no_cache=1" || req.url ~ "(\?|&)eID=") { return (pass); } # Delete cookies unset req.http.Cookie; } # Handle compression correctly. Different browsers send different # "Accept-Encoding" headers, even though they mostly all support the same # compression mechanisms. if (req.http.Accept-Encoding) { if (req.http.Accept-Encoding ~ "gzip") { # If the browser supports gzip, that is what we use set req.http.Accept-Encoding = "gzip"; } else if (req.http.Accept-Encoding ~ "deflate") { # Next try deflate encoding set req.http.Accept-Encoding = "deflate"; } else { # Unknown algorithm. Remove it and send unencoded. unset req.http.Accept-Encoding; } } # Lookup in cache return (lookup); } sub vcl_hash { hash_data(req.url); if (req.http.Host) { hash_data(req.http.Host); } else { hash_data(server.ip); } return (hash); } sub vcl_fetch { # Set default cache to 24 hours set beresp.ttl = 24h; # Deliver old content up to 1 day set beresp.grace = 24h; # Set cache for 3 days if (req.url ~ "\.(png|gif|jpeg|jpg|ico|swf|css|js|pdf|txt)(\?|$)") { set beresp.ttl = 72h; } # Delete cookie if (req.request == "POST" || req.url ~ "^/typo3" || req.url ~ "(\?|&)eID=") { } else { unset beresp.http.Set-Cookie; } if (beresp.ttl <= 0s || beresp.http.Set-Cookie || beresp.http.Vary == "*") { return (hit_for_pass); } # Add additional information for backend server if (client.ip ~ flushers) { set beresp.http.X-TTL = beresp.ttl; set beresp.http.X-Grace = beresp.grace; } return (deliver); } sub vcl_deliver { if (client.ip !~ flushers) { # Remove some significant headers unset resp.http.X-Varnish; unset resp.http.Via; unset resp.http.Age; unset resp.http.X-Powered-By; } else { # Add additional information for backend server if (obj.hits > 0) { set resp.http.X-Cache = "Hit (" + obj.hits + ")"; } else { set resp.http.X-Cache = "Miss"; } } return (deliver); } Editado Junho 8, 2018 por Agnaldofreitas 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.