user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
stream {
upstream nasrvs {
server 192.168.5.107:80;
server 192.168.5.108:80;
}
server {
listen 80;
proxy_pass nasrvs;
proxy_timeout 60s;
proxy_connect_timeout 10s;
}
} 另一台Nginx负载均衡及keepalived基本配置相同更改相应的参数即可。
3.后端Varnish-server配置如下:
vcl 4.0;
# Default backend definition. Set this to point to your content server.
backend default {
.host = "192.168.20.109";
.port = "80";
}
backend nginxsrvs {
.host = "192.168.20.108";
.port = "80";
}
sub vcl_recv {
# Happens before we check if we have this in cache already.
#
# Typically you clean up the request here, removing cookies you don't need,
# rewriting the request, etc.
if (req.method == "PURGE") {
return(purge);
}
if (req.url ~ "(?i)\.(css|svg|js|jpg|jpeg|png|gif|pdf)") {
set req.backend_hint = nginxsrvs;
} else {
set req.backend_hint = default;
}
}
sub vcl_purge {
return (synth(200,"Purged"));
}
sub vcl_deliver {
if (obj.hits>0) {
set resp.http.X-Cache = "HIT via " + server.ip;
} else {
set resp.http.X-Cache = "Miss via " + server.ip;
} 两台varnishserver的配置基本一致,更改相应的参数即可。