• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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]

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

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


    复制代码
    代码如下:

    DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \
    -f ${VARNISH_VCL_CONF} \
    -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} \
    -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

    上一篇:CentOS7创建本地YUM源的三种方法
    下一篇:Centos6下使用yum安装Varnish的配置方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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