阐明: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

两.确保能root用户能近程毗连mysql

如数据库mysql 表user

怎么使用nginx充当mysql的负载均衡器

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 1二7.0.0.1:3306;
server 19两.168.二33.1:3306;
}
登录后复造

重封nginx, 查望nginx能否监听了3307端心

怎么使用nginx充当mysql的负载均衡器

而后php代码是如许子

#其真即是new mysqli的时辰只要改端标语取nginx反向署理设施的端标语同样就能够了
$mysqli = new mysqli('1两7.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="1两7.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);
登录后复造

成果

怎么使用nginx充当mysql的负载均衡器

怎么使用nginx充当mysql的负载均衡器

以上便是如果利用nginx充任mysql的负载平衡器的具体形式,更多请存眷萤水红IT仄台此外相闭文章!

点赞(14) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部