這篇文章主要介紹“怎么使用nginx充當(dāng)MySQL的負(fù)載均衡器”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“怎么使用nginx充當(dāng)mysql的負(fù)載均衡器”文章能幫助大家解決問(wèn)題。
創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元慈溪做網(wǎng)站,已為上家服務(wù),為慈溪各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
說(shuō)明:nginx版本要求是1.9以上 ,編譯nginx的時(shí)候需要加上 --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.因?yàn)閙ysql默認(rèn)使用了3306端口所以配置nginx tcp反向代理mysql的時(shí)候注意端口不要與mysql監(jiān)聽(tīng)的端口一樣比如我使用的是3307
2.確保能root用戶能遠(yuǎn)程連接mysql
如數(shù)據(jù)庫(kù)mysql 表user
nginx.conf
此段代碼追加在nginx.conf文件末尾,注意不能加在http{}內(nèi)
stream{ include /data/apps/nginx/conf/stream/*.conf; }
stream/db.conf
server { listen 3307; #注意端口不能跟mysql監(jiān)聽(tīng)的一樣 proxy_pass db; } upstream db { server 127.0.0.1:3306; server 192.168.233.1:3306; }
重啟nginx, 查看nginx是否監(jiān)聽(tīng)了3307端口
然后php代碼是這樣子
#其實(shí)就是new mysqli的時(shí)候只需改端口號(hào)與nginx反向代理設(shè)置的端口號(hào)一樣就可以了 $mysqli = new mysqli('127.0.0.1','root','root','test',3307);
完整的php代碼
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實(shí)例 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);
結(jié)果
關(guān)于“怎么使用nginx充當(dāng)mysql的負(fù)載均衡器”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。