• Nginx负载均衡设置实例

    Nginx最大的亮点就是反向代理、负载均衡这一块了,本文将详细讲解Nginx负载均衡的配置。

    负载均衡

    先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可。

    测试环境

    由于没有服务器,所以本次测试直接host指定域名,然后在VMware里安装了三台CentOS。

    A服务器IP: 192.168.5.149 (主)
    B服务器IP: 192.168.5.27
    C服务器IP: 192.168.5.126

    ...

    READ ALL

  • JavaScript中stopPropagation函数停止事件传播

    JavaScript中的事件默认是冒泡方式,逐层往上传播,可以通过stopPropagation()函数停止事件在DOM层次中的传播

    HTML代码

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8" />
        <title>stopPropagation()使用 - 琼台博客</title>
      </head>
      <body>
        <button>button</button>
      </body>
    </html>
    

    没有加stopPropagation()

    var button = document.getElementsByTagName('button')[0];
    button.onclick=function(event){
      console.log('button clicked');
    };
     
    document.body.onclick=function(event){
      console.log('body clicked');
    }
    
    // Output:
    //  button clicked
    //  body clicked
    

    ...

    READ ALL

  • 如何找出PHP配置文件php.ini的路径?

    近来,有不博友问php.ini存在哪个目录下?或者修改php.ini以后为何没有生效?基于以上两个问题,我觉得有必要教一下刚接触PHP的博友们如何找到PHP调用php.ini的路径目录。

    一般安装PHP环境无非有两种平台,Linux环境下与Win平台下。而WIN平台居多,因为现在套装安装包非常方便,如appserv、wamp一件安装包等等。而Linux下也有LNMP一键安装包,非常方便。由于这些安装做了简化,所以自然的许多博友就不太清楚环境安装好了以后php.ini放在哪个目录下,或者在某个目录下找到了php.ini文件但不知是否是PHP程序调用的那个。

    ...

    READ ALL

  • MySQL存储引擎MyISAM特性

    MySQL的默认存储引擎MyISAM一直都是MySQL非事务存储引擎的最佳选择。它在性能和可用特征之间,提供一种良好的均衡性,如全文索引、压缩、空间函数。MyISAM仅支持表锁,不支持行级锁。

    加锁与并发

    MyISAM对整张表加锁,而不是行。读取程序在需要读取数据时,在所有表上都可以获得共享锁(读锁),而写入程序可以获得排它锁(写锁)。用户在执行查询select语句时,可以同时在一张表内插入新数据,这也称读写并发,这是一个非常有用的特性。

    数据加密

    这个还是有点用的,特别是敏感数据

    B-tree索引

    由于B-Tree的特性,在B-Tree中按key检索数据的算法非常直观, 首先从根节点进行二分查找,如果找到则返回对应节点的data,否则对相应区间的指针指向的节点递归进行查找,直到找到节点或找到null指针,前者查找成功,后者查找失败

    ...

    READ ALL

  • 8条命案持枪嫌犯周克华域名被抢注!

    名人的姓名全拼域名被抢注已是煮米高手的必备一招,但前两天重庆银行持枪抢劫犯周克华的全拼域名也被人抢注了。

    full

    从whois查询结果看到域名在8月10日,也就是重庆银行发生抢劫案当天,警方公布通缉犯周克华姓名后即被抢注。

    full

    从注册信息可以看到是温州市(wen zhou shi),诶!看来周克华确切成了名人,风范一点也不比当年的马加爵差。可惜,当年马加爵犯案的时候,姓名全拼域名没有被重视。

    ...

    READ ALL

  • CSS display属性

    在CSS中可以通过display属性来快速隐藏一个Element,display就是告诉浏览器如何来显示Element,如果你给none值的话就是不显示

    div {
      display: none;
    }
    

    最长见的另外一种用法就是让行级标签变成块级标签,值是block

    span {
      display: span;
    }
    

    以上代码就是让span标签从行级变块级,当然也可以反过来块级变行级inline-block

    h1 {
      display: inline-block
    }
    

    display的可用属性其实还有很多,如flexgridtableinherit等等,如果你不想设置任何模式,可以给默认值initial

    ...

    READ ALL

  • MySQL事务autocommit自动提交

    MySQL默认操作模式就是autocommit自动提交模式。这就表示除非显式地开始一个事务,否则每个查询都被当做一个单独的事务自动执行。我们可以通过设置autocommit的值改变是否是自动提交autocommit模式。

    通过以下命令可以查看当前autocommit模式

    mysql> show variables like 'autocommit';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | autocommit    | ON    |
    +---------------+-------+
    1 row in set (0.04 sec)
    

    ...

    READ ALL

  • CentOS如何发送邮件

    CentOS是一个非常不错的免费开源Linux系统,许多站点首选的平台。然而CentOS默认不能发送邮件,需要发送邮件的童鞋可以安装一个sendmail程序。

    安装sendmail

    执行:

    yum -y install sendmail
    

    程序会自动搜索出sendmail安装程序自动安装。

    安装好sendmail以后执行以下命令启动sendmail

    [root@vps478753 ~]# service sendmail start
    Starting sendmail:                                         [  OK  ]
    Starting sm-client:                                        [  OK  ]
    

    ...

    READ ALL

  • CSS指针形状属性cursor

    CSS有一个属性cursor,它可以改变指针形状

    最长的无非就是给节点加上小手的形状了

    # div {
      width: 300px;
      height: 300px;
      cursor: pointer;
      background: red;
    }
    

    指针有很多种,看看来自W3C这个例子就知道了

    .alias {cursor: alias;}
    .all-scroll {cursor: all-scroll;}
    .auto {cursor: auto;}
    .cell {cursor: cell;}
    .context-menu {cursor: context-menu;}
    .col-resize {cursor: col-resize;}
    .copy {cursor: copy;}
    .crosshair {cursor: crosshair;}
    .default {cursor: default;}
    .e-resize {cursor: e-resize;}
    .ew-resize {cursor: ew-resize;}
    .grab {cursor: grab;}
    .grabbing {cursor: grabbing;}
    .help {cursor: help;}
    .move {cursor: move;}
    .n-resize {cursor: n-resize;}
    .ne-resize {cursor: ne-resize;}
    .nesw-resize {cursor: nesw-resize;}
    .ns-resize {cursor: ns-resize;}
    .nw-resize {cursor: nw-resize;}
    .nwse-resize {cursor: nwse-resize;}
    .no-drop {cursor: no-drop;}
    .none {cursor: none;}
    .not-allowed {cursor: not-allowed;}
    .pointer {cursor: pointer;}
    .progress {cursor: progress;}
    .row-resize {cursor: row-resize;}
    .s-resize {cursor: s-resize;}
    .se-resize {cursor: se-resize;}
    .sw-resize {cursor: sw-resize;}
    .text {cursor: text;}
    .url {cursor: url(myBall.cur),auto;}
    .w-resize {cursor: w-resize;}
    .wait {cursor: wait;}
    .zoom-in {cursor: zoom-in;}
    .zoom-out {cursor: zoom-out;}
    

    ...

    READ ALL

  • PHP多态性实例

    什么是多态性

    多态性是继数据库抽象和继承后,面向对象语言的第三个特征。多态即多种形态,具有表现多种形态的能力特征。在面向对象中表示根据对象的类型以不同方式处理。多态性允许每个对象以适合自身的方式去响应共同的消息。多态性增强了软件的灵活性和重用性。

    如我们创建一个doing()方法,如果是学生则打印上课,如是公司职员则打印上班。

    普通做法

    使用if判断

    /**
     * PHP多态性
     * 琼台博客 www.qttc.net
     */
     
    // 定义学生类
    class student{
      public function cla(){
        echo "学生工正在上课!<br />";
      }
    }
     
    // 定义职员类
    class office{                              
      public function Wor(){
        echo "职员正在上班!<br />";
      }
    }
     
    // 判断对象类型方法
    function doing($obj){ 
      if($obj instanceof student){ 
        $obj->cla();
      }elseif($obj instanceof office){
        $obj->wor();
      }else{
        echo "没有这个对象!";
      }
    }
     
    doing(new student()); // 学生正在上课
    doing(new office());  // 职员正在上班
    

    ...

    READ ALL