前提条件
注意:使用Nginx实现MySQL数据库的负载均衡,前提是要搭建MySQL的主主复制环境,关于MySQL主主复制环境的搭建,后续会在MySQL专题为大家详细阐述。这里,我们假设已经搭建好MySQL的主主复制环境,MySQL服务器的IP和端口分别如下所示。
192.168.1.101 3306
192.168.1.102 3306
通过Nginx访问MySQL的IP和端口如下所示。
192.168.1.100 3306
Nginx实现MySQL负载均衡
nginx从1.9.0后引入模块ngx_stream_core_module,模块是没有编译的,需要用到编译,编译时需添加--with-stream配置参数,stream负载均衡官方配置样例如下所示。
worker_processes auto;
error_log /var/log/nginx/error.log info;
events {
worker_connections 1024;
}
stream {
upstream backend {
hash $remote_addr consistent;
server backend1.example.com:12345 weight=5;
server 127.0.0.1:12345 max_fails=3 fail_timeout=30s;
server unix:/tmp/backend3;
}
upstream dns {
server 192.168.0.1:53535;