Linux企业实战 --varnish(基本配置)

1. 什么是varnish?

  • 是一个反向http代理,有时称为http加速器或web加速器。
  • varnish将文件或文件片段存储在内存中,使他们能够快速被提供。
  • varnish本质上是一个键/值存储,它通过使用url作为键。
  • varnish是为现代硬件、现代操作系统和现代工作负载而设计的。
  • varnish 是做CDN 即缓存和访问代理

2. http协议

internet的基本协议是tcp/ip协议栈(传输控制协议和网际协议),目前广泛使用的ftp(文件传输协议)、http(超文本传输协议)、archie gopher等都是建立在tcp/ip上面的应用层协议,不同的协议对应不同的应用,而http协议是web应用所使用的主要协议。
  http协议是基于请求相应模式的。客户端项服务器发送一个请求,请求头包含请求的方法(get、post、put等),url,协议版本(第几版),以及包含请求修饰符,客户端信息和内容的类似MIME的消息结果。服务器则以一个状态行作为相应,相应内容包括消息协议的版本,成功或者错误编码加上包含服务器信息,实体源信息以及可能的实体内容。
  http是无状态协议,依赖于瞬间或者近乎瞬间的请求处理。请求信息被立即发送,理想的情况时没有延时的进行处理,不过延时还是客观存在的。http有一种内置的机制,在消息的传递时间上有一定的灵活性:超时机制,一个超时就是客户机等待请求消息的返回信息的最长时间。
  无状态协议: 每一次请求和相应都是相对独立的,web服务器不能记住同样的请求,所以可能会做一些重复的动作。所以出现了cache缓存。

基于http协议的c/s请求响应机制的信息交换过程包括四个步骤:

建立连接: 客户端与服务端建立tcp连接( TCP的三次握手 )
发送请求: 打开一个连接后,客户端把请求消息送到服务器的相应端口上,完成请求动作提交。
发送响应: 服务器在处理完客户端请求之后,要想客户端发送响应消息
关闭连接: 客户端和服务器双方都可以通过关闭套接字来结束tcp/ip对(TCP的四次挥手

3. 实验准备

步骤一:用快照开启三台虚拟机,并改对应的IP、hostname
第一台:ip:172.25.60.253 hostname:server1
第二台:ip:172.25.60.2 hostname:server2
第三台:ip:172.25.60.3 hostname:server3

步骤二:server1装varnish
官网下载 varnish 安装包,并安装。(pkgs.org 软件包)
在这里插入图片描述步骤三:varnish 的配置文件
在这里插入图片描述
步骤四:服务启动文件

cat /usr/lib/systemd/system/varnish.service
LimitNOFILE=131072   # 最大打开文件数
LimitMEMLOCK=85983232  # 最大锁定内存空间

在这里插入图片描述
2.

ulimit -a   # 对shell进程进行限制

在这里插入图片描述
步骤五:系统中的最大文件数,若超额,则可增加内存数即可

[root@server1 ~]# sysctl -a |grep file    # 内存为1024  内核中查看
fs.file-max = 98290   # 系统中n的最大文件数
fs.file-nr = 928	0	98290
fs.xfs.filestream_centisecs = 3000

# 在 virt-manager 中修改虚拟机的内存改为2048M
[root@server1 ~]# sysctl -a | grep file   # 修改内存为2048
fs.file-max = 184182
fs.file-nr = 864	0	184182
fs.xfs.filestream_centisecs = 3000

步骤六:修改系统参数

[root@server1 ~]# vim /etc/security/limits.conf
# End of file
varnish          -       nofile          131072
varnish          -       memlock         82000

[root@server1 ~]# id varnish
uid=996(varnish) gid=995(varnish) groups=995(varnish)

在这里插入图片描述安装了varnish,则系统提供了一个varnis用户。
在这里插入图片描述
步骤七:varnish原理

  1. 原理图

在这里插入图片描述

  1. 修改varnish的主配置文件(server1)
[root@server1 ~]# vim /etc/varnish/default.vcl 
backend default {
    .host = "172.25.254.2";
    .port = "80";
}

在这里插入图片描述

  1. 在server2中安装apache
[root@server2 ~]# yum install httpd -y
[root@server2 ~]# cd /var/www/html/
[root@server2 html]# ls
[root@server2 html]# vim index.html
[root@server2 html]# cat index.html 
server2
  1. 在server1上修改端口
[root@server1 ~]# vim /usr/lib/systemd/system/varnish.service  # 修改varnish的端口
ExecStart=/usr/sbin/varnishd -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -s malloc,256m
[root@server1 ~]# systemctl start varnish
[root@server1 ~]# netstat -antlpe|grep varnish
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      0          24133      2120/varnishd       
tcp        0      0 127.0.0.1:6082          0.0.0.0:*               LISTEN      0          24195      2120/varnishd       
tcp6       0      0 :::80                   :::*                    LISTEN      0          24134      2120/varnishd       
tcp6       0      0 ::1:6082                :::*                    LISTEN      0          24194      2120/varnishd       

在这里插入图片描述在这里插入图片描述

  1. 开启server2(服务器上的http)
[root@server2 html]# systemctl start httpd
  1. 测试

在这里插入图片描述

发布了136 篇原创文章 · 获赞 1 · 访问量 1657

猜你喜欢

转载自blog.csdn.net/qq_45652989/article/details/104403778