ワニスのLinuxのシミュレーション

###########
ワニスパッケージ準備
仮想マシンを送信するためにSCPを使用して、実際のマシン上ワニスパッケージを取得し
、仮想マシンがグラフィカルインタフェースをインストールしていないため、実マシン上のようにSSH仮想マシンを
受信した仮想マシンワニスパッケージは、その後、注意、3つのRPMをインストールします。これは3をインストールする必要があり、依存関係を解決することができます
インストール-Y-4.0.5-1.el7.x86_64.rpmワニスYUM
ワニス-LIBS-4.0.5-1.el7を。 x86_64.rpmの
jemalloc-3.6.0-1.el7.x86_64.rpm

プロフィール
RPM -qcワニス4.0.5-1.el7.x86_64
/etc/logrotate.d/varnish
/etc/varnish/default.vcl
/etc/varnish/varnish.params
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明

ファイル番号を開くことができニスを変更############## #############

-------- --------メモリハードウェアのサイズを見ます

開いているファイルの最大数をサポートするvarhish vimの/usr/lib/systemd/system/varnish.service#表示は、
のサイズでgrepのファイル#ファイル-maxの外観| -a sysctlの
最大のワニスをサポートするために、ハードウェアのメモリを搭載した仮想マシンを小さすぎています開いているファイルの数、次の操作を行う必要があります:
実マシン上の仮想マシンの管理インターフェイスを入力して
仮想マシンをオフ
--2048のメモリのサイズを変更するには
ニス修正-------- -----------
のulimitを-aは、
システムのすべてのユーザー設定が見ることができる
-X ULIMIT
これは一時的な変化ではなく、システム全体を変更
恒久的にニスを開くことができるファイルの数を変更するために、あなたはワニスに設定ファイルを変更する必要があります
#/etc/security/limits.confをvimの末尾に追加
NOFILE 131072 -ワニス
ワニス- MEMLOCK 82000
systemctlスタートニス
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明

##############实现反向代理################
vim /etc/varnish/default.vcl #设置后端的ip和端口
backend default {
.host = “172.25.1.102”;
.port = “80”;
}
vim /etc/varnish/varnish.params #设置varnish的端口
VARNISH_LISTEN_PORT=80
systemctl restart varnish

##打开后端的虚拟机
安装httpd
yum install httpd -y
cd /var/www/html
vim index.html #从varnish代理那里得到需要显示的内容
systemctl start httpd

##测试
在真机上
curl 172.25.1.101
会看到172.25.1.102的显示内容
所以装varnish的虚拟机就相当于代理机

ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明

ps:外话
在装有varnish的虚拟机上
1===
ps aux #可以看到所有的进程,找到varnish的进程,紧随其上的root进程,相当于父进程,记住两个进程的pid
cd /proc/
cd /pidroot
cat status
cd /pidvarn
cat status
比较这两个的Threads

ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明

2===
查看文件可打开的数量是否修改成功
cd /proc/pidvarnish #这里的pid上面已经查看了
cat limits #可以看到修改结果

ここに画像を挿入説明

#################2查看缓存命中情况
##显示缓存提示
vim /etc/varnish/default.vcl
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = “HIT from cache”;
}
else{
set resp.http.X-Cache = “miss from cache”;
}
return (deliver);
}
systemctl restart varnish

##测试
curl -I 172.25.1.101 #查看X-cache
代理:# 可清除缓存看实验效果
varnishadm ban req.url “~” /
varnishadm ban req.url “~” /index.html

ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明

###############3定义不同域名站点的后端服务器
##再开启第三台虚拟机,并且安装httpd,编辑index.html文件
##vim /etc/varnish/default.vcl

backend endser1 {
.host = “172.25.1.102”;
.port = “80”;
}

backend endser2 {
.host = “172.25.1.103”;
.port = “80”;
}
sub vcl_recv {
if(req.http.host~"^(www.)?fairy.org"){
set req.http.host=“www.fairy.org”;
set req.backend_hint = endser1;
}elsif(req.http.host~"^bbs.fairy.org"){
set req.backend_hint=endser2;
}else{
return(synth(405));
}

##在真机上设置解析
vim /etc/hosts
172.25.1.101 jing1 fairy.org www.fairy.org bbs.fairy.org

ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明

ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明

#################实现负载均衡

#vcl4.0 以后定义负载均衡需要导入模块

vim /etc/varnish/default.vcl
import directors from “/usr/lib64/varnish/vmods/libvmod_directors.so”;

sub vcl_init {
##定义负载均衡
new lb = directors.round_robin();
lb.add_backend(endser1);
lb.add_backend(endser2);
}
sub vcl_recv {
if (req.http.host ~ “^(www.)?fairy.org”) {
##当访问 www.fairy.org 或 fairy.org时,请求转到 lb
set req.http.host = “www.fairy.org”;
set req.backend_hint = lb.backend();
return (pass); #测试时可打开此选项,不进行缓存。只测试www.fairy.org即可
} elsif (req.http.host ~ “^bbs.fairy.org”) { #此测试不用这里
set req.backend_hint = endser2;
} else {
return (synth(405));
}
}

##在真机上测试www.fairy.org
会发现两台后端在交替服务
ここに画像を挿入説明

ここに画像を挿入説明
ここに画像を挿入説明

ps:外话
如果注释了return(pass),那么varnish会缓存数据,负载均衡时轮询会失效。在清空缓存后,会切换后端服务
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明

#################实现的是

1)在 server3 上配置虚拟主机 ##因为当前 server3 上以 www.fairy.org 访问和bbs.fairy.org 访问看到的是同一个资源
注意:上一步设置了访问www.fairy.org时,会在两个后端中轮询操作。所以www.fairy.org会访问到第二个后端的index.html ,bbs.fairy.org 没有做轮询,只访问第二个后端的index.html

vim /etc/httpd/conf.d/vhost.conf<VirtualHost *:80>
DocumentRoot /www
ServerName www.westos.org

<Directory “/www”>
Require all granted

<VirtualHost *:80>
DocumentRoot /bbs
ServerName bbs.westos.org

<Directory “/bbs”>
Require all granted

#手动建立两个目录,并写好 index.html
重启 httpd,手动测试访问
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明

ps:外话

这里也可以把www.fairy.org和bbs.fairy.org 换成其他的地址,不过要在真机上做解析
ここに画像を挿入説明
ここに画像を挿入説明

ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
###########3## CDN 配置推送平台
什么是 CDN 推送
当后端服务器中的内容有更新的时候,在 varnish 的缓
存中应该及时地同步后端服务器中的内容。相当于清空
varnish 中的缓存,当下一次进行访问时,直接从服务
器中获取新的内容
#在 server1 上:
yum install -y unzip php httpd
##修改 httpd 端
口为 8080 并启动(varnish 已经占用 80)
unzip bansys.zip -d /
mv /bansys/* /var/www/html
vim config.php

真机上浏览器访问: 172.25.1.101:8080
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明

HTTP、Telnetと##二種類、選択されたHTTPを有し、ワニス配置追加
のみ、関数名を任意に取ることができる。#妖精
ACL妖精{
「127.0.0.1」を、
「172.25.0.0」/ 24;
}
}
#0指定されたネットワークをセグメントは、プッシュすることができる
(req.method == "BAN"){IF
IF {(!妖精client.ip〜)
"NOTパージシンセ(405、リターン
; + client.ip)に許可")
}
禁止(「REQを〜する.url「+ req.url);
リターン(パージ);
}リスタートワニスをsystemctl

#テスト
アクセス:172.25.0.1:8080
HTTPを選択
*すべてのページをプッシュする##。
/index.htmlが##プッシュindex.htmlページ

ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明

おすすめ

転載: blog.csdn.net/qq_36016375/article/details/91983737