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

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    如何使用nginx充当mysql的负载均衡器

    说明:nginx版本要求是1.9以上 ,编译nginx的时候需要加上 --with-stream

    如:

    ./configure --prefix=/Data/apps/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_image_filter_module --with-stream

    注意

    1.因为mysql默认使用了3306端口所以配置nginx tcp反向代理mysql的时候注意端口不要与mysql监听的端口一样比如我使用的是3307

    2.确保能root用户能远程连接mysql

    如数据库mysql 表user

    nginx.conf

    此段代码追加在nginx.conf文件末尾,注意不能加在http{}内

    stream{
    include /Data/apps/nginx/conf/stream/*.conf;
    }

    stream/db.conf

    server {
    listen 3307; #注意端口不能跟mysql监听的一样
    proxy_pass db;
    }
    upstream db {
    server 127.0.0.1:3306;
    server 192.168.233.1:3306;
    }

    重启nginx, 查看nginx是否监听了3307端口

    然后php代码是这样子

    #其实就是new mysqli的时候只需改端口号与nginx反向代理设置的端口号一样就可以了
    $mysqli = new mysqli('127.0.0.1','root','root','test',3307);

    完整的php代码

    <?php
    class MysqlClass
    {
    private static $obj = NULL; //mysqlclass对象
    public $host;
    public $database;
    public $user;
    public $pwd;
    public $port;
    public $mysqli = NULL;
    //禁止对象被克隆
    private function __clone(){}
    //禁止外部实例化
    private function __construct($host="127.0.0.1",$database="test",$user="root",$pwd="root",$port="3307")
    {
    $this->host = $host;
    $this->database = $database;
    $this->user = $user;
    $this->pwd = $pwd;
    $this->port = $port;
    $this->mysqli = $this->db_connect();
    }
    //获取mysqli连接
    private function db_connect()
    {
    $mysqli = new mysqli($this->host,$this->user,$this->pwd,$this->database,$this->port);
    if($mysqli->connect_errno)
    {
    printf("Connect failed: %s\n", $mysqli->connect_errno);
    exit();
    }
    $mysqli->query("set names utf8 ");
    return $mysqli;
    }
    //获取db实例
    public static function get_db()
    {
    if(self::$obj === NULL)
    {
    self::$obj = new self();
    }
    return self::$obj;
    }
    public function db_query($sql)
    {
    $result = $this->mysqli->query($sql);
    $arr = [];
    while ($row = $result->fetch_assoc()) {
    $arr[] = $row;
    }
    $result->close();
    $this->mysqli->close();
    return $arr;
    }
    public function db_insert()
    {
    }
    public function db_update()
    {
    }
    public function __destruct() {
    $this->mysqli->close();
    }
    }
    $db = MysqlClass::get_db();
    $r = $db->db_query("show tables");
    var_dump($r);

    结果

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    上一篇:Ubuntu安装MySQL5.7并配置数据存储路径的方法步骤
    下一篇:Linux系统安装docker并用ssh登录docker容器的操作方法
  • 相关文章
  • 

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

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

    如何使用nginx充当mysql的负载均衡器 如何,使用,nginx,充当,mysql,