Varnish,Nginx搭建缓存服务器
一. 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
来源:https://my.oschina.net/u/1449160/blog/198650
Varnish,Nginx搭建缓存服务器的更多相关文章
- 用Nginx搭建CDN服务器方法-开启Nginx缓存与镜像,自建图片服务器
利用Nginx的proxy_cache搭建缓存服务器一:编译ngx_cache_purge1.Nginx的Proxy_cache是根据Key值md5哈希存储缓存,支持任意的Key,例如你可以根据”域名 ...
- Nginx,Nginx 搭建图片服务器
Nginx Nginx 概述 反向代理 工作流程 优点 1:保护了真实的web服务器,保证了web服务器的资源安全 2:节约了有限的IP地址资源 3:减少WEB服务器压力,提高响应速度 4:其他优点 ...
- Nginx 搭建图片服务器
Nginx 搭建图片服务器 本章内容通过Nginx 和 FTP 搭建图片服务器.在学习本章内容前,请确保您的Linux 系统已经安装了Nginx和Vsftpd. Nginx 安装:http://www ...
- Nginx搭建图片服务器
Nginx搭建图片服务器 标签(空格分隔): linux,nginx Nginx常用命令 ./nginx 启动 ./nginx -s reload 重载配置文件 ./nginx -s stop|sta ...
- Nginx做缓存服务器
Nginx做缓存服务器 Nginx配置 1.主配置/etc/nginx/nginx.conf worker_processes 1; events { worker_connections 1024; ...
- windows环境下基于nginx搭建rtmp服务器
基于nginx搭建rtmp服务器需要引入rtmp模块,引入之后需重新编译nginx linux环境几个命令行就能实现编译,笔者未尝试,网上有很多教程. windows环境还需要安装一系列的编译环境,例 ...
- nginx 搭建图片服务器(windows 下,linux 下原理应该一样)
作者的心声:很多知道的.用过的东西,不写下来,下次还要百度查询,浪费时间和精力,故本次写下学习笔记,方便下次查阅. 题外话:如有读者通过我这篇博客解决了工作上的难题,可以给个评论,让我一起分享你的喜悦 ...
- Windows环境下用jwplayer+Nginx搭建视频点播服务器
flv视频可以采用两种方式发布: 一.普通的HTTP下载方式 二.基于Flash Media Server或Red5服务器的rtmp/rtmpt流媒体方式. 多数知名视频网站都采用的是前一种方式. 两 ...
- [转]用jwplayer+Nginx搭建视频点播服务器,解决拖动加载慢的问题
flv视频可以采用两种方式发布: 一.普通的HTTP下载方式 二.基于Flash Media Server或Red5服务器的rtmp/rtmpt流媒体方式. 多数知名视频网站都采用的是前一种方式. 两 ...
随机推荐
- 使用fill_n算法
今天使用这个算法来给一个数组赋值,所以把它的使用过程记录下来: fill_n函数的作用是:给你一个起始点,然后再给你一个数值count和val.把从起始点开始依次赋予count个元素val的值. 注意 ...
- EasyPlayerPro安卓流媒体播放器实现Android H.265硬解码流程
本文转自EasyDarwin团队成员John的博客:http://blog.csdn.net/jyt0551/article/details/74502627 H.265编码算法作为新一代视频编码标准 ...
- python的if判断补充
python的if判断补充 exit_flag = False # 标识符 if exit_flag == False: print('exit_flag == False') exit_flag = ...
- Android Studio真机测试失败-----''No target device found" (转)
参考文章: https://blog.csdn.net/chang_sir/article/details/51755572 今天想用真机测试一个程序,却报出这样一个Error"No tar ...
- 【Python学习】Thread笔记(1)
Python学习笔记 - Thread(1) 标签(空格分隔): python from threading import Thread num = 2000 id_list = [] def do_ ...
- ASP.NET WebForm 与 IE10、IE11
最近维护公司一个烂项目.NET4.0 Asp.Net WebForm(在MVC5泛滥的今天还有用WebForm的(⊙o⊙)…) IE10.IE11下aspx中大表单提交不上去,报_DoPostBack ...
- erl_0014 《硝烟中的erlang》 读书笔记001 “绪论”
1.大家听说Erlang,往往是因为其对高并发的良好支持.其实,Erlang的核心特征是容错,从某种程度上讲,并发只是容错这个约束下的一个副产品.容错是Erlang语言的DNA,也是和其他所有编程语言 ...
- NSURLSession学习笔记(一)简介
一.URL Session的基本概念 1.三种工作模式: 默认会话模式(default):工作模式类似于原来的NSURLConnection,使用的是基于磁盘缓存的持久化策略,使用用户keychain ...
- 《DSP using MATLAB》示例Example7.5
代码: h = [-4, 1, -1, -2, 5, 6, 6, 5, -2, -1, 1, -4]; M = length(h); n = 0:M-1; [Hr, w, b, L] = Hr_Typ ...
- 坚持c++,真正掌握c++(4)
这几天复习了c++primer的第12章类的解说,尽管之前这一章也看了几遍.可是我终究认为书读百遍其义自现,如今我给出一些我学习的心得,欢迎大家一起探讨. 首先,类能够说是c++的灵魂,正由于c++中 ...