Centos6下Varnish启动失败的解决办法

卡巴斯基qq

卡巴斯基qq

2016-03-31 15:39

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的Centos6下Varnish启动失败的解决办法,希望大家看完后能赶快学习起来。

Centos6下Varnish启动失败的解决办法

 Centos6下Varnish启动失败的解决办法 图老师

  Varnish是一款高性能的Web加速器,缓存性能非常好,于是我也学学这么好的东西。

  看到官网的最新版是4.0,毫不犹豫下载了4.0,安装上,安装非常顺利,可是用起来就没那么幸运了

  代码如下:

  rpm –nosignature -i https://repo.varnish-cache.org/redhat/varnish-4.0.el6.rpm

  yum install varnish

  准备启动varnish,却一直提示失败

  代码如下:

  [root@localhost ~]# service varnish start

  Starting Varnish Cache: [FAILED]

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  根据官网的教程,使用手动方式启动,一切正常,分析结论是启动脚本有问题,于是先更改了 /etc/sysconfig/varnish 开启debug模式

  在DAEMON_OPTS变量末尾 加上一个 -d ,让其以debug模式启动:

  代码如下:

  DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT}

  -f ${VARNISH_VCL_CONF}

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  -T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT}

  -t ${VARNISH_TTL}

  -p thread_pool_min=${VARNISH_MIN_THREADS}

  -p thread_pool_max=${VARNISH_MAX_THREADS}

  -p thread_pool_timeout=${VARNISH_THREAD_TIMEOUT}

  -u varnish -g varnish

  -S ${VARNISH_SECRET_FILE}

  -s ${VARNISH_STORAGE} -d"

  然后启动发现一直卡在那里,不动了,再改一下 /etc/init.d/varnish中的start函数,开始有提示信息了( /dev/null 2&1 是屏蔽任何输出信息)

  代码如下:

  daemon --pidfile $pidfile $exec -P $pidfile "$DAEMON_OPTS" /dev/null 2&1

  终于有提示信息了

  复制代码

  代码如下:

  [root@localhost ~]# service varnish start

  Starting Varnish Cache: Failed to change owner on ./vcl.qQKfF5iP.c: Operation not permitted

  Running VCC-compiler failed, exited with 2

  VCL compilation failed

  [FAILED]

  原来是权限问题,觉得可能是个4.0的新版本bug,只能将启动的用户和组改成root(-u 和 -p),先将就用用吧,反正只是拿来学习一下。如果是生产系统,建议不要用root启动,因为一旦varnish存在漏洞,如远程溢出或者命令执行,直接就是root权限。

  复制代码

  代码如下:

  DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT}

  -f ${VARNISH_VCL_CONF}

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  -T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT}

  -t ${VARNISH_TTL}

  -p thread_pool_min=${VARNISH_MIN_THREADS}

  -p thread_pool_max=${VARNISH_MAX_THREADS}

  -p thread_pool_timeout=${VARNISH_THREAD_TIMEOUT}

  -u root -g root

  -S ${VARNISH_SECRET_FILE}

  -s ${VARNISH_STORAGE}"

  不要忘了把-d去除,启动成功

  终极解决办法:

  后来找到了问题的根源,是因为Centos/Redhat的Selinux问题(貌似是bug),参见:https://bugzilla.redhat.com/show_bug.cgi?id=1125165

  只要执行如下命令即可正确启动Varnish:

  复制代码

  代码如下:

  #setenforce 0

展开更多 50%)
分享

猜你喜欢

Centos6下Varnish启动失败的解决办法

服务器
Centos6下Varnish启动失败的解决办法

Centos6下Varnish启动失败解决方法

服务器
Centos6下Varnish启动失败解决方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

腾讯游戏平台启动游戏失败解决办法

软件教程
腾讯游戏平台启动游戏失败解决办法

Windows 2008R2 HyperV下安装CentOS6

服务器
Windows 2008R2 HyperV下安装CentOS6

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

win8系统更新导致virtualbox启动失败解决办法

windows系统
win8系统更新导致virtualbox启动失败解决办法

.NET Framework 安装失败的解决办法

电脑网络
.NET Framework 安装失败的解决办法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

flashfxp怎么连接服务器?

flashfxp怎么连接服务器?

iPhone6s和LG G4哪个好

iPhone6s和LG G4哪个好
下拉加载更多内容 ↓