varnish 실험

4365 단어
실험 목적:
두 개의 lamp 에 wordpress 를 배치 하고 Nginx 로 반대 하여 아래 를 측정 합 니 다.그 다음 에 nginx 이후 에 varnish 캐 시 를 배치 하고 다시 테스트 한 다음 에 varnish 가 없 는 상황 을 비교 합 니 다.
실험 환경:
총 7 대의 호스트 1 대 는 클 라 이언 트 호스트, nginx 프 록 시 1 대, 1 대 는 varnish 서버, 2 대 는 백 엔 드 lamp 서버, 1 대 는 nfs 서버 로 wordpress 를 설치 합 니 다.
실험 과정
2. nginx 프 록 시 에 nginx 를 설치 한 다음 설정 파일 을 수정 합 니 다. yum install nginx vim / etc / nginx / nginx. conf 는 http 컨 텍스트 에 다음 과 같은 내용 을 추가 합 니 다.
        upstream web {
                server 172.16.10.4:80;
                server 172.16.10.5:80;
}
vim /etc/nginx/conf.d/var.conf    #        ,      
server {
        listen 80 default;
        server_name test.io;
        location / {
                proxy_pass http://172.16.10.3:6081;
        }
}

nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
systemctl start nfs

3. nfs 서버 설정
yum -y install nfs-utils wordpress
vim /etc/exports
      
/usr/share/wordpress/ 172.16.10.4(rw,no_root_squash) 172.16.10.5(rw,no_root_squash)    #no_root_squash       ,           root,                 。
service rpcbind start
service nfs start
exportfs -v    #      
exportfs -v
/usr/share/wordpress
  172.16.10.4(rw,wdelay,no_root_squash,no_subtree_check,sec=sys,rw,no_root_squash,no_all_squash)
/usr/share/wordpress
        172.16.10.5(rw,wdelay,no_root_squash,no_subtree_check,sec=sys,rw,no_root_squash,no_all_squash)

4. 백 엔 드 램프 서버 두 대 에서 다음 작업 을 수행 합 니 다. (1) phop 과 httpd 설정
yum -y install httpd php mysql-server php-mysql
vim /var/www/html/index.php


브 라 우 저 로 접근http://172.16.10.4/index.php php 페이지 에서 php 와 httpd 설치 성공 증명 (2) nfs 파일 시스템 마 운 트:
yum -y install nfs-utils
mkdir /var/www/html/wordpress/
mount 172.16.200.105:/usr/share/wordpress /var/www/html/wordpress/

(3) 그리고 mysql 설정
service mysqld start mysql_secure_installation \ # my sql 초기 화 프로그램 을 실행 하고 루트 에 비밀 번 호 를 설정 한 다음 에 남 은 사용자 와 라 이브 러 리 my sql - u root - p \ # 비밀 번 호 를 입력 한 후 my sql my sql > create database wordpress 에 들 어 갑 니 다. \ #전용 라 이브 러 리 mysql 만 들 기 > grant all on wordpress. * '123' 으로 확 인 된 wordeuser @ '172.16.%.%'; \ #사용자 (4) 를 만 들 고 권한 을 부여 합 니 다.그리고 다음 단 계 는 설정 파일 을 만 드 는 것 을 알려 줍 니 다. wordpress 디 렉 터 리 에서 이 파일 을 만 든 다음 내용 을 붙 여 넣 습 니 다.
cd / var / www / html / ordpress / vim wp - config. php 는 웹 페이지 에 제 시 된 파일 내용 을 붙 여 넣 으 면 됩 니 다. 여 기 는 파일 내용 을 표시 하지 않 고 제목 을 입력 하고 사이트 사용자 이름과 비밀 번 호 를 입력 하면 wordpress 에 들 어 갑 니 다 (5) 테스트 는 클 라 이언 트 서버 에 httpd - tools 를 설치 하여 방금 한 클 라 이언 트 를 테스트 합 니 다.
yum - y install httpd - tools ab - c 10 - n 100 172.16.1.2 / ordpress \ # \ # \ # \ # 압력 측정, varnish 가 없 을 때의 병행 능력 테스트 (6) nginx 이후 varnish 서버 증가
/ etc / nginx / conf. d / var. conf 를 수정 하고 lication 을 varnish 서버 ip 주소 로 변경 합 니 다.
 location / {
                proxy_pass http://172.16.10.3;
        }

그리고 varnish 서버 에 varnish 를 설치 합 니 다.
yum - y install varnish cd / etc / varnish / varnish 감청 주 소 를 80 포트 로 변경: vim varnish. params VARNISHLISTEN_PORT = 80 \ # 이 곳 의 6081 을 80 포트 vim default. vcl 로 변경 하여 파일 내용 을 다음 과 같이 변경 합 니 다.
import directors;
backend web1 {
    .host="172.16.10.4";
    .port="80";
}

backend web2 {
    .host="172.16.10.5";
    .port="80";
}

sub vcl_init {
        new server = directors.round_robin();
        server.add_backend(web1);
        server.add_backend(web2);
}
sub vcl_recv {
    if (req.method == "PURGE") {
        return(purge);
}
    if (req.url ~ "(?i)\.jsp$") {
    set req.backend_hint = server.backend();
    }
     if (req.http.Authorization || req.method == "POST") {
    return (pass);
  }
    if (req.http.Cookie ~ "wordpress_logged_in_") {
    return (pass);
  }

}
sub vcl_pipe {
        return (pipe);
}

sub vcl_pass {
        return (fetch);
}

sub vcl_backend_response {
 if (bereq.url ~ "\.(css|js|png|gif|jp(e?)g|swf|ico|txt|eot|svg|woff)") {
    unset beresp.http.cookie;
    set beresp.http.cache-control = "public, max-age=2700000";
  }
}

sub vcl_deliver {
}

그리고 varnish 를 시작 하여 브 라 우 저 로 172.16.10.2 / ordpress 를 방문 합 니 다. wordpress 페이지 에 방문 하면 실험 이 성공 했다 는 것 을 증명 합 니 다.

좋은 웹페이지 즐겨찾기