nginx + tomcat +redis 负载均衡遇到问题集锦

问题一:nginx 代理 tomcat 502 bad gateway

错误日志:

2018/04/17 14:24:42 [crit] 11658#0: *33 connect() to 192.168.0.11:8080 failed (13: Permission denied) while connecting to upstream, client: 192.168.0.109, server: _, request: "GET / HTTP/1.1", upstream: "http://192.168.0.11:8080/", host: "192.168.0.10"

解决方法:

/usr/sbin/setsebool -P httpd_can_network_connect true 

 

问题二:安装redis时,make报错

错误日志:

zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"

原因:

Redis在安装时关于内存分配器allocator, 如果指定了MALLOC这个环境变量,那么会用这个环境变量的去建立Redis。如果没有,那么就是用默认的分配器

Redis 2.4版本之后,默认使用jemalloc来做内存管理,因为jemalloc被证明解决fragmentation problems(内存碎片化问题)比libc更好。但是如果你又没有jemalloc而只有libc,当make出错时,你可以加这么一个参数即可。

解决方法:

  1. 设置MALLOC=libc
    make MALLOC=libc

     

  2. 安装jemalloc 
    下载 jemalloc-5.0.1.tar.bz2  链接:https://pan.baidu.com/s/19eR6pvPm5eKAPMtHHguQSw 密码:8des
    解压
    [root@localhost home]# tar xvf jemalloc-5.0.1.tar.bz2
    编译并安装
    [root@localhost home]# cd jemalloc-5.0.1
    [root@localhost jemalloc-5.0.1]# ./configure --prefix=/usr/local/jemalloc
    [root@localhost jemalloc-5.0.1]# make && make install
    编译redis时设置 MALLOC变量
    make MALLOC=/usr/local/jemalloc/lib

     

 

posted @ 2018-04-18 08:38  异世界的赶尸人  阅读(179)  评论(0编辑  收藏  举报