varnish使用過程中遇的問題
1:varnish3 安裝。 Varnish2 和 varnish3 的參數有所不同!varnish2.x和varnish3.x編譯參數不同!
先執行autogen.sh ,結果報錯!
解決方案:
它提示沒有找到automake,yum -y install automake 即可!
接著再次運行autogen.sh,出錯如下:
解決方案:
yum -y install libtool
然後執行sh autogen.sh即可正常!
說明如下:
libtool 是一個通用庫支援指令碼,將使用動態庫的複雜性隱藏在統一、可移植的介面中。
下一步是configure:
./configure --enable-debugging-symbols --enable-developer-warnings --enable-dependency-tracking --prefix=/usr/local/varnish3
make
make install
提示找不到pcre,見附件!
解決方案:Yum –y install pcre-devel
2:檔案描述符太小,導致varnish啟動失敗。
解決方案:ulimit –HSn 65535 調整檔案描述符即可
3:May 6 16:50:34 varnish2 /data/varnish/cache[2144]: -T 192.168.2.185:3500 could not be listened on.原因: varnish儘管沒有在80連接埠啟動監聽,但在3500卻啟動了,所以再次啟動varnish的時候會有類似於上面的提示。
解決方案:
lsof –I :3500
Kill掉對應的pid
然後重新啟動即可!
4:varnish不分發到問題終於解決了,原因:設定檔裡有如下的配置
在我的測試環境中(我的機器上虛擬出來的環境) 我使用www.abc.com測試,所以肯定是正常的!但在另外一個測試環境裡, 我僅僅修改了web2和web3 的地址和連接埠,而沒有修改www.test.com的相關配置!
修改為如下即可正常!
#如果不修改www.test.com的相關內容,www.test.com解析到varnish上後,varnish不管後台機器是否宕機,永遠都是訪問到這台機器上去!
這個問題浪費了我兩天的時間! ##粗心害死人啊
5:Create worker thread failed 11 Resource temporarily unavailable原因:在啟動varnishd的時候,
ulimit -SHn 65535
/usr/local/varnish/sbin/varnishd -f /usr/local/varnish/etc/varnish/default.vcl -a 192.168.2.184:80 -u varnish -g varnish -n /data/varnish/cache -p thread_pool_max=5000 -pthread_pools=1 -h classic,500009 -p lru_interval=20 -p listen_depth=1024 -s malloc,512M -w 1000,51200,10 -T 192.168.2.184:3500
注意紅色字型部分,開始我指定為2,結果就有上面的錯誤產生,修改為1問題即可解決,主要原因是我使用vm測試的, 我vm只有一個cpu!所以就會報上面的錯誤!