Category: Linux

  • nginx location proxy_pass URI问题

    对于配置 nginx proxy_pass,对于请求的 URI 最后面的 slah 即 / 有无需要注意。

    例子

    请求 jpuyy.com/compare/mid/222.do
    proxy_pass 目标是 http://192.168.2.2:8082/compare/mid/222.do

    测试一:proxy_pass 最后面有 /

    location ^~ /compare/ {
        proxy_pass http://192.168.2.2:8082/;
        # 有 /,将从 /compare/ 右做为请求与 proxy_pass 进行拼接, request to http://192.168.2.2:8082/mid/222.do
    }

    测试二:proxy_pass 最后无 /

    location ^~ /compare/ {
        proxy_pass http://192.168.2.2:8082;
        # 无 /,将从/compare/左侧最开始做为请求与 proxy_pass 进行拼接, request to http://192.168.2.2:8082/compare/mid/222.do
    }

    这样测试一会报 404 错,证明要采用测试二。

    例子

    请求 jpuyy.com/news/abc.xml
    proxy_pass 目标为 http://192.168.2.2:80/news/abc.xml

    location /news/abc.xml {
        proxy_pass http://192.168.2.2:80/news/abc.xml;
    }
    
  • centos6下查看RAID信息

    到 LSI 下载

    8.07.14_MegaCLI.zip

    centos7

    http://sarepos.cpanel.net/centos/7/noarch/MegaCli-8.07.14-1.el7.centos.noarch.rpm

    安装

    MegaCli-8.07.14-1.noarch.rpm
    Lib_Utils-1.00-09.noarch.rpm

    默认在 /opt/MegaRAID/MegaCli 目录下
    命令使用:

    #/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL 查raid级别
    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -aALL 查raid卡信息
    #/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL 查看硬盘信息
    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -aAll 查看电池信息
    #/opt/MegaRAID/MegaCli/MegaCli64 -FwTermLog -Dsply -aALL 查看raid卡日志
    #/opt/MegaRAID/MegaCli/MegaCli64 -adpCount 【显示适配器个数】
    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpGetTime –aALL 【显示适配器时间】
    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -aAll 【显示所有适配器信息】
    #/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -LALL -aAll 【显示所有逻辑磁盘组信息】
    #/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aAll 【显示所有的物理信息】
    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL |grep ‘Charger Status’ 【查看充电状态】
    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL【显示BBU状态信息】
    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuCapacityInfo -aALL【显示BBU容量信息】
    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuDesignInfo -aALL 【显示BBU设计参数】
    #/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuProperties -aALL 【显示当前BBU属性】
    #/opt/MegaRAID/MegaCli/MegaCli64 -cfgdsply -aALL 【显示Raid卡型号,Raid设置,Disk相关信息】

  • mkfifo+nc进行端口转发

    需求:

    服务器 A 装了 redis,监听 127.0.0.1 6379
    服务器 B 要做 A 的 slaveof

    但是 A 不能服务,那么在 A 上可以做一些操作把端口8888放出来,让 B 能做 slaveof A公网ip:8888做复制。

    首先

    mkfifo fifo

    然后通过管道,及 fifo 将两个 nc 连起来

    nc -l 8888 < fifo | nc 127.0.0.1 6379 > fifo

    最后在 B 上直接 slaveof A公网ip:8888 即可。

    以上测试(两个 redis 版本一致情况下)通过。

    参考:

    http://notes.tweakblogs.net/blog/7955/using-netcat-to-build-a-simple-tcp-proxy-in-linux.html

  • su切换用户提示资源不足

    centos下切换用户提示

    su: cannot set user id: Resource temporarily unavailable

    尝试使用ssh登陆

    ssh [email protected]
    Connection to xx.xx.xx.xx closed by remote host.
    Connection to xx.xx.xx.xx closed.
    

    检查资源限制

    /etc/security/limits.conf

    检查程序消耗

    检查连接数

     

  • php-5.3.28安装ldap扩展

    racktables 用到了 ldap 认证,对已经编译好的 php-5.3.28,缺少这个模块

    现在需要加载 ldap.so

    首先准备依赖库

    yum安装依赖

    yum install -y cyrus-sasl-ldap.x86_64
    yum install -y openldap-devel.x86_64
    yum install -y openldap.x86_64
    yum install -y openldap-devel.i686

    下载源码 php-5.3.28.tar.gz

    cd ./ext/ldap
    /usr/local/php-5.3.28/bin/phpize
    ./configure --php-config=/usr/local/php-5.3.28/bin/php-config
    make
    make install

    最后在php.ini启用此扩展

    extension = "ldap.so"

    重启 php