久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何在內網的vps上安裝Varnish

201次閱讀
沒有評論

共計 4137 個字符,預計需要花費 11 分鐘才能閱讀完成。

這篇文章主要介紹了如何在內網的 vps 上安裝 Varnish,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。

在內網的 vps 上安裝 Varnish 的最新版 3.0 來用做測試
Varnish 有 centos 下的 rpm 和 ubuntu 下的 deb 二進制包下載,但我選擇的是源碼編譯安裝
先下載 varnish-3.0.0_jb51.rar
yum install gcc
yum install gcc-c++ libstdc++-devel
yum install -y httpd-devel pcre perl pcre-devel zlib zlib-devel GeoIP GeoIP-devel
Varnish 需要 pcre 支持,如果服務器沒有安裝 pcre-devel 會提示需要指定 prce 目錄。
Centos 服務器上使用 yum install pcre-devel 安裝
解壓 varnish 進行編譯安裝
cd varnish-3.0.0
./autogen.sh
./configure –prefix=/usr/local/varnish PKG_CONFIG_PATH=/usr/lib/pkgconfig
make
make install
安裝成功后, 安裝的目錄是
cd /usr/local/varnish/sbin
./varnishd -V
查看版本,看是否安裝成功
測試 varnish
先編輯配置文件
vi /usr/local/varnish/etc/varnish/default.vcl

代碼如下:

# This is a basic VCL configuration file for varnish. See the vcl(7)
# man page for details on VCL syntax and semantics.
#
# Default backend definition. Set this to point to your content
# server.
#
backend default {
.host = 192.168.88.156
.port = 80
### 下面三行為新加配
.connect_timeout = 1s;
.first_byte_timeout = 5s;
.between_bytes_timeout = 2s;
}
#
# Below is a commented-out copy of the default VCL logic. If you
# redefine any of these subroutines, the built-in logic will be
# appended to your code.
sub vcl_recv {
if (req.restarts == 0) {
if (req.http.x-forwarded-for) {
set req.http.X-Forwarded-For =
req.http.X-Forwarded-For + , + client.ip;
} else {
set req.http.X-Forwarded-For = client.ip;
}
}
if (req.request != GET
req.request != HEAD
req.request != PUT
req.request != POST
req.request != TRACE
req.request != OPTIONS
req.request != DELETE ) {
/* Non-RFC2616 or CONNECT which is weird. */
return (pipe);
}
if (req.request != GET req.request != HEAD) {
/* We only deal with GET and HEAD by default */
return (pass);
}
if (req.http.Authorization || req.http.Cookie) {
/* Not cacheable by default */
return (pass);
}
return (lookup);
}
#
sub vcl_pipe {
# # Note that only the first request to the backend will have
# # X-Forwarded-For set. If you use X-Forwarded-For and want to
# # have it set for all requests, make sure to have:
# # set bereq.http.connection = close
# # here. It is not set by default as it might break some broken web
# # applications, like IIS with NTLM authentication.
return (pipe);
}
#
sub vcl_pass {
return (pass);
}
#
sub vcl_hash {
hash_data(req.url);
if (req.http.host) {
hash_data(req.http.host);
} else {
hash_data(server.ip);
}
return (hash);
}
#
sub vcl_hit {
return (deliver);
}
#
sub vcl_miss {
return (fetch);
}
#
sub vcl_fetch {
if (beresp.ttl = 0s ||
beresp.http.Set-Cookie ||
beresp.http.Vary == * ) {
/*
* Mark as Hit-For-Pass for the next 2 minutes
*/
set beresp.ttl = 120 s;
return (hit_for_pass);
}
return (deliver);
}
#
sub vcl_deliver {
return (deliver);
}
#
# sub vcl_error {
# set obj.http.Content-Type = text/html; charset=utf-8
# set obj.http.Retry-After = 5
# synthetic {
# ?xml version= 1.0 encoding= utf-8 ?
# !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN
# http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
# html
# head
# title } + obj.status + + obj.response + {/title
# /head
# body
# h2 Error } + obj.status + + obj.response + {/h2
# p } + obj.response + {/p
# h4 Guru Meditation: /h4
# p XID: } + req.xid + {/p
# hr
# p Varnish cache server /p
# /body
# /html
#
# return (deliver);
# }
#
sub vcl_init {
return (ok);
}
#
sub vcl_fini {
return (ok);
}

/usr/local/varnish/sbin/varnishd -f /usr/local/varnish/etc/varnish/default.vcl -s malloc,1024m -T 127.0.0.1:200 -a 0.0.0.0:80
現在可以打開 varnish 了
http://192.168.88.1/ (開啟 varnish 的端口號)
戴圖顯示,nginx 為 177 上運行的 web 服務器,出現了 varnish 字樣,表示緩存架設成功,已正常工作了。
 
啟動 varnishncsa 用來將 Varnish 訪問日志寫入日志文件:

代碼如下:

/usr/local/varnish/bin/varnishncsa -n /var/vcache -w /var/logs/varnish.log

配置開機自動啟動 Varnish

代碼如下:

vi /etc/rc.local

在末尾增加以下內容:
引用
ulimit -SHn 51200
/usr/local/varnish/sbin/varnishd -n /var/vcache -f /usr/local/varnish/vcl.conf -a 0.0.0.0:80 -s file,/var/vcache/varnish_cache.data,1G -g www -u www -w 30000,51200,10 -T 127.0.0.1:3500 -p client_http11=on
/usr/local/varnish/bin/varnishncsa -n /var/vcache -w /var/logs/youvideo.log
優化 Linux 內核參數

代碼如下:

vi /etc/sysctl.conf

在末尾增加以下內容:
引用
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 5000 65000
查看 Varnish 服務器連接數與命中率
/usr/local/varnish/bin/varnishstat
配置啟動腳本:
mkdir /cache/varnish/V -p
vi /usr/local/varnish/sbin/start.sh
#!/bin/sh
#file:start.sh
date -u
/usr/local/varnish/sbin/varnishd -a 0.0.0.0:80 -s file,/cache/varnish/V,1024m -f /usr/local/varnish/etc/varnish/default.vcl -p thread_pool_max=1500 -p thread_pools=5 -p listen_depth=512
chmod 777 start.sh
運行:
/usr/local/varnish/sbin/start.sh

感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“如何在內網的 vps 上安裝 Varnish”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計4137字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 江永县| 隆德县| 定安县| 吉首市| 乐亭县| 安丘市| 萍乡市| 鹤岗市| 灵石县| 阳曲县| 祥云县| 安陆市| 平顺县| 东乡族自治县| 桂东县| 鹰潭市| 鞍山市| 韩城市| 吉林省| 宣城市| 海淀区| 兰西县| 原阳县| 越西县| 博客| 盐城市| 茌平县| 泽普县| 宁晋县| 卓资县| 林西县| 和平区| 合阳县| 黔江区| 昭平县| 百色市| 方山县| 昌都县| 定陶县| 融水| 凤阳县|