varnish 一款 HTTP 加速器
缓存的目的还是为了降低后面apache的压力,照web服务器的硬件能力,apache撑死大概3000个左右连接,瓶颈应该还是在内存上。曾经多次被大量连接挂死。
}
varnish的日志比较怪异,一段时间来都没有在google上找到解决方法,日志里总是出现127.0.0.1来的访问,还不少,还有很多各个字段都是null的情况。对访问日志统计造成一些麻烦。
于是在前面再加一个nginx,采用nginx除了能支持高并发以外,还有一个看中的就是日志格式可以很容易地构造,想做成啥样就能做成啥样。
nginx上做两个虚拟主机,一个虚拟主机用作运行状态查看,另一个做proxy到varnish。varnish跑在127.0.0.1:8080上。
nginx官网上说是做proxying without caching,但实际观察下来,似乎也是有cache的。实际上在同一时刻,外部来的HTTP连接数远大于proxy到varnish的连接数。
用nginx的另一个考虑,也为以后访问量进一步增大后,可能需要增加的第二台缓存服务器做简单负载均衡的准备。
upstream mysite.cn {
server 127.0.0.1:8080 ;
# server 192.168.11.1:80; 今后可能的第二台cache
}
server
{
#第一个虚拟主机,用于varnish和nginx运行状态监测
listen 80;
server_name cache.mysite.cn;
index index.htm index.html index.php;
root /web/htdocs;
location / {
index infov.txt;
allow 192.168.0.0/16;
deny all;
}
server 127.0.0.1:8080 ;
# server 192.168.11.1:80; 今后可能的第二台cache
}
server
{
#第一个虚拟主机,用于varnish和nginx运行状态监测
listen 80;
server_name cache.mysite.cn;
index index.htm index.html index.php;
root /web/htdocs;
location / {
index infov.txt;
allow 192.168.0.0/16;
deny all;
}
location /status {
stub_status on;
access_log off;
allow 192.168.0.0/16;
deny all;
}
stub_status on;
access_log off;
allow 192.168.0.0/16;
deny all;
}
}
server
{
#第二个虚拟主机,proxy到后面的varnish
listen 80;
client_max_body_size 50M;
server_name .mysite.cn;
index index.htm index.html index.php;
root /web/htdocs;
{
#第二个虚拟主机,proxy到后面的varnish
listen 80;
client_max_body_size 50M;
server_name .mysite.cn;
index index.htm index.html index.php;
root /web/htdocs;
location / {
proxy_pass http://mysite.cn;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 50m;
client_body_buffer_size 256k;
proxy_connect_timeout 10;
proxy_send_timeout 15;
proxy_read_timeout 15;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
#location ~ .*\.php?$
#{
# include conf/fcgi.conf;
# fastcgi_pass 127.0.0.1:10080;
# fastcgi_index index.php;
#}
proxy_pass http://mysite.cn;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 50m;
client_body_buffer_size 256k;
proxy_connect_timeout 10;
proxy_send_timeout 15;
proxy_read_timeout 15;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
#location ~ .*\.php?$
#{
# include conf/fcgi.conf;
# fastcgi_pass 127.0.0.1:10080;
# fastcgi_index index.php;
#}
}
转载于:https://blog.51cto.com/andykbrave/1083544