Nginx MySQL TCP 代理
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...