Nginx MySQL TCP 代理设置,实现读写分离,均衡负载。
nginx 从 1.9.0 开始支持 tcp 代理,但是 ubuntu 软件源里自带的 nginx 没有编译 stream 模块,因此需要使用 Nginx 官方维护的软件源安装 Nginx 。
在 nginx.conf 中加入:
stream {
include /etc/nginx/stream-enable/*.conf;
}
新建两个文件夹: stream-avaliable 和 stream-enable ,模仿 sites-avaliable
在 stream-avaliable 新建文件如 mysql.conf :
server {
listen 3308;
proxy_pass mysql_read;
}
upstream mysql_read {
server 10.184.21.121:3306;
server 10.184.21.122:3306;
}
启用:
sudo ln -s /etc/nginx/stream-avaliable/mysql.conf /etc/nginx/stream-enable
重启 nginx 。
测试
<?php
$mysqli = new mysqli("127.0.0.1", "root", "password", "db", "3308");
if (mysqli_connect_errno()) {
printf("Connect error: %s\n", mysqli_connect_error());
exit();
}
if ($result = $mysqli->query("SELECT * FROM `user` ORDER BY `uid` DESC LIMIT 1")) {
$row = $result->fetch_row();
echo json_encode($row);
$result->close();
}
$mysqli->close();

评论列表 (0条):
加载更多评论 Loading...