1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
一.
varnish 1.安装pcre库,兼容正则表达式 #
tar -zxvf pcre-8.10.tar.gz #
cd pcre-8.10 #
./configure --prefix=/usr/local/pcre #
make && make install 2.配置安装varnish #
tar -zxvf varnish-3.0.2.tar.gz #
cd varnish-3.0.2 #
export PKG_CONFIG_PATH=/usr/local/pcre/lib/pkgconfig/ #
./configure --prefix=/usr/local/varnish #
make && make install 3.修改varnish配置文件 /usr/local/varnish/etc/varnish/default .vcl #
mv default.vcl default.vcl.bak #
vi cq.vcl backend
cqserver { .host
= "127.0.0.1" ; .port
= "8087" ; .connect_timeout
= 20s; } acl
purge { "localhost" ; "127.0.0.1" ; "192.168.1.0" /24 ; } sub
vcl_recv { if
(req.request == "PURGE" )
{ if
(!client.ip ~ purge) { error
405 "Not
allowed." ; } return
(lookup); } if
(req.http.host ~ "^www.baidu.com" )
{ set
req.backend = cqserver; if
(req.request != "GET"
&& req.request != "HEAD" )
{ return
(pipe); } else { return
(lookup); } } else
{ error
404 "caoqing
Cache Server" ; return
(lookup); } } sub
vcl_hit { if
(req.request == "PURGE" )
{ set
obj.ttl = 0s; error
200 "Purged." ; } } sub
vcl_miss { if
(req.request == "PURGE" )
{ error
404 "Not
in cache." ; } } (1)Varnish通过反向代理请求后端IP为127.0.0.1,端口为8087的web服务器,即nginx服务器监听端口; (2)Varnish允许localhost、127.0.0.1、192.168.1.*三个来源IP通过PURGE方法清除缓存; (3)Varnish对域名为www.baidu.com的请求进行处理,非www.baidu.com域名的请求则返回 "caoqing
Cache Server" ; (4)Varnish对HTTP协议中的GET、HEAD请求进行缓存,对POST请求透过,让其直接访问后端Web服务器。 4.启动varnish #
cd /usr/local/varnish/sbin/ #
./varnishd -f /usr/local/varnish/etc/varnish/cq.vcl -s file,/var/varnish_cache,1G -T 127.0.0.1:2000 -a 0.0.0.0:80 二.
nginx 1.安装nginx #
rpm -ivh zlib-devel-1.2.3-4.el5.i386.rpm #
tar zxvf nginx-1.4.1.tar.gz #
cd nginx-1.4.1 #
./configure --prefix=/usr/local/nginx --with-openssl=/usr/lib --with-pcre=/root/tool/pcre-8.10 --with-http_stub_status_module #
make && make install 2.启动nginx #
cd /usr/local/nginx/sbin #
./nginx 3.修改ngnix配置文件 测试配置文件 /usr/local/nginx/sbin/ . /nginx
-t #
cd /usr/local/nginx/conf #
vi nginx.conf #使用的用户和组 user
root root; #制定工作衍生进程数(一般为CPU总核数两倍) worker_processes
8; #制定文件描述符数量 worker_rlimit_nofile
51200; #指定错误日志存放路径 error_log
logs /error .log #指定pid存放路径 pid
logs /nginx .pid; event { #使用网络I/O模型 use
epoll; #允许的连接数 worker_connections
65535; } http
{ #访问日志存放路径 access_log
logs /access .log; #开启gzip压缩 gzip
on; gzip_min_length
1000; gzip_proxied
expired no-cache no-store private auth; gzip_types
text /plain
text /css
text /xml
text /javascript
application /x-javascript
application /xml
application /rss +xml
application /xhtml +xml
application /atom_xml ; gzip_disable "MSIE
[1-6].(?!.*SV1)" ; #限定PHP-CGI的连接、发送和读取的时间为300s fastcgi_connect_timeout
300s; fastcgi_send_timeout
300s; fastcgi_read_timeout
300s; #虚拟主机配置 server
{ #监听端口 listen
8087; #主机名称 server_name
127.0.0.1; #google提供的DNS服务 resolver
8.8.8.8 location
/ { #nginx作为HTTP代理服务器 proxy_pass
http: // $http_host$request_uri; proxy_set_header
Accept-Encoding '' ; proxy_redirect
off; } } } 三.
排错优化 1)修改环境变量 vi
~/.bashrc PATH=$PATH: /usr/local/nginx/sbin : /usr/local/varnish/sbin : /usr/local/varnish/bin export
PATH 2)nginx启动与关闭 参数: - v :查看版本 -V:查看配置模块 -t:查看配置文件是否正确 -c:制定其他配置文件 pkill
-9 nginx 3)varnish启动与关闭 参数: -u:以什么用户运行 -g:以什么组运行 -f:varnish配置文件 -a:绑定IP和端口 -s:varnish缓存位置和大小 -w:最小,最大线程和超时时间 -T:varnish管理端口,主要用来清除缓存 pkill
varnishd varnish服务动态加载配置文件 #varnishadm
-T 127.0.0.1:2000 vcl.load
vcl-name_vcl "配置文件路径"
# vcl-name 这里可以任意取名 vcl.use
vcl-name vcl.show
vcl-name #显示vcl-name配置文件内容 #
varnishncsa -w /usr/local/varnish/logs/varnish.log 将输出日志写入到制定日志文件。 4)修改windows客户端 C:\Windows\System32\drivers\etc\hosts 192.168.1.202
www.baidu.com |
Varnish+Nginx搭建缓存服务器
最新推荐文章于 2024-02-27 15:17:51 发布