Nginx 负载均衡

nginx.png

一.需要使用nginx的upstream模块.

    http {
        upstream myServerList {
            server 192.168.1.2;
            server 192.168.1.3;
            server 192.168.1.4;
        }

        server {
            listen 80;
            server_name 192.168.1.1;
            location / {
                proxy_pass http://myServerList;
            }
        }
    }

二.nginx中的upstream支持下面几种方式:

1.轮询(默认,按照时间顺序对所有服务器一个一个的访问,如果有服务器宕机,会自动剔除)
2.weight(服务器的方位几率和weight成正比,这个可以在服务器配置不均的时候进行配置)
    upstream myServerList {
        server 192.168.1.2 weight=3;
        server 192.168.1.3 weight=2;
        server 192.168.1.4; #默认权重为1
    }
3.ip_hash(对每个请求的ip进行hash计算,并按照一定的规则分配对应的服务器)
    upstream myServerList {
        ip_hash;
        server 192.168.1.2;
        server 192.168.1.3;
     }

如果负载均衡成功之后,也可以尝试在单台LANMP架构的服务器上,开启多个Apache虚拟机,或许可以提高响应速度.

在linux中正确的安装Xcache加速php

在linux中正确的安装Xcache加速php,亲测,未安装之前内存消耗为3.4M/req,安装之后,执行过一次页面后,使用内存小于600Kb。

  1. 第一步,下载Xcache

  2. 第二步,解压Xcache源码

  3. 第三步,非常重要

    安装前要执行phpize配置
    /php的路径/bin/phpize

  4. 第四步,配置->编译->安装

    配置

    ./configure --prefix=/php的路径/lib/php/extensions
    --with-php-config=/php的路径/bin/php-config
    --enable-xcache

    编译 && 安装

    make && make install

  5. 第五步,重启服务器

    service httpd restart

需要注意的是zend optimizer和Xcache可能会有冲突

支持跨域请求的nginx CDN服务器配置

server
    {
        listen 80;
        server_name cdn.cjango.com;
        root /home/www/cjango;
        location / {
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Headers X-Requested-With;
            add_header Access-Control-Allow-Methods GET;
            expires      1d;
        }
        access_log  off;
    }

PHP7 太空船操作符

太空船操作符用于比较两个表达式。当$a大于、等于或小于$b时它分别返回-1、0或1。 比较的原则是沿用 PHP 的常规比较原则进行的。

<?php
// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1

PHP7 null合并运算符

以前总是要使用的isset方法 现在可以简化了

曾经是这样的:

$info = isset($_GET['something']) ? $_GET['something'] : 'nothing';

现在可以这样了:

$info = $_GET['something']  ??  'nothing';

甚至你还可以这样:

$info = $_GET['something'] ?? $_POST['something'] ?? 'nothing';

扫一扫