nacos集群搭建Nginx負(fù)載均衡的操作詳解
一、mysql安裝與基操
1.1 數(shù)據(jù)準(zhǔn)備
- 拉取mysql
docker pull mysql:5.7(版本)
- 定義掛載目錄
mkdir -p /mysql/{conf,data,script}
- 配置my.cnf
my.cnf內(nèi)容:
[mysqld] #Mysql服務(wù)的唯一編號(hào) 每個(gè)mysql服務(wù)Id需唯一 server-id=1 #服務(wù)端口號(hào) 默認(rèn)3306 port=3306 #mysql安裝根目錄(default /usr) #basedir=/usr/local/mysql #mysql數(shù)據(jù)文件所在位置 datadir=/var/lib/mysql #pid pid-file=/var/run/mysqld/mysqld.pid #設(shè)置socke文件所在目錄 socket=/var/lib/mysql/mysql.sock #設(shè)置臨時(shí)目錄 #tmpdir=/tmp # 用戶 user=mysql # 允許訪問的IP網(wǎng)段 bind-address=0.0.0.0 # 跳過密碼登錄 #skip-grant-tables #主要用于MyISAM存儲(chǔ)引擎,如果多臺(tái)服務(wù)器連接一個(gè)數(shù)據(jù)庫(kù)則建議注釋下面內(nèi)容 #skip-external-locking #只能用IP地址檢查客戶端的登錄,不用主機(jī)名 #skip_name_resolve=1 #事務(wù)隔離級(jí)別,默認(rèn)為可重復(fù)讀,mysql默認(rèn)可重復(fù)讀級(jí)別(此級(jí)別下可能參數(shù)很多間隙鎖,影響性能) #transaction_isolation=READ-COMMITTED #數(shù)據(jù)庫(kù)默認(rèn)字符集,主流字符集支持一些特殊表情符號(hào)(特殊表情符占用4個(gè)字節(jié)) character-set-server=utf8mb4 #數(shù)據(jù)庫(kù)字符集對(duì)應(yīng)一些排序等規(guī)則,注意要和character-set-server對(duì)應(yīng) collation-server=utf8mb4_general_ci #設(shè)置client連接mysql時(shí)的字符集,防止亂碼 init_connect='SET NAMES utf8mb4' #是否對(duì)sql語句大小寫敏感,1表示不敏感 lower_case_table_names=1 #最大連接數(shù) max_connections=400 #最大錯(cuò)誤連接數(shù) max_connect_errors=1000 #TIMESTAMP如果沒有顯示聲明NOT NULL,允許NULL值 explicit_defaults_for_timestamp=true #SQL數(shù)據(jù)包發(fā)送的大小,如果有BLOB對(duì)象建議修改成1G max_allowed_packet=128M #MySQL連接閑置超過一定時(shí)間后(單位:秒)將會(huì)被強(qiáng)行關(guān)閉 #MySQL默認(rèn)的wait_timeout 值為8個(gè)小時(shí), interactive_timeout參數(shù)需要同時(shí)配置才能生效 interactive_timeout=1800 wait_timeout=1800 #內(nèi)部?jī)?nèi)存臨時(shí)表的最大值 ,設(shè)置成128M。 #比如大數(shù)據(jù)量的group by ,order by時(shí)可能用到臨時(shí)表, #超過了這個(gè)值將寫入磁盤,系統(tǒng)IO壓力增大 tmp_table_size=134217728 max_heap_table_size=134217728 #禁用mysql的緩存查詢結(jié)果集功能 #后期根據(jù)業(yè)務(wù)情況測(cè)試決定是否開啟 #大部分情況下關(guān)閉下面兩項(xiàng) #query_cache_size = 0 #query_cache_type = 0 #數(shù)據(jù)庫(kù)錯(cuò)誤日志文件 #log-error=/var/log/mysqld.log #慢查詢sql日志設(shè)置 #slow_query_log=1 #slow_query_log_file=/var/log/mysqld_slow.log #檢查未使用到索引的sql log_queries_not_using_indexes=1 #針對(duì)log_queries_not_using_indexes開啟后,記錄慢sql的頻次、每分鐘記錄的條數(shù) log_throttle_queries_not_using_indexes=5 #作為從庫(kù)時(shí)生效,從庫(kù)復(fù)制中如何有慢sql也將被記錄 log_slow_slave_statements=1 #慢查詢執(zhí)行的秒數(shù),必須達(dá)到此值可被記錄 long_query_time=8 #檢索的行數(shù)必須達(dá)到此值才可被記為慢查詢 min_examined_row_limit=100 #mysql binlog日志文件保存的過期時(shí)間,過期后自動(dòng)刪除 #expire_logs_days=5 binlog_expire_logs_seconds=604800
準(zhǔn)備sql腳本
1.2 創(chuàng)建mysql與數(shù)據(jù)表
創(chuàng)建mysql容器
docker run \ --name m1 \ -v /mysql/conf/my.cnf:/etc/my.cnf \ -v /mysql/data:/var/lib/mysql \ -v /mysql/script:/script \ --privileged=true \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql/mysql-server:5.7
執(zhí)行sql腳本進(jìn)入script文件下
查看數(shù)據(jù)表:
二、Nacos集群部署
2.1 創(chuàng)建nacos及配置
- 拉取nacos容器(內(nèi)存大約1G)
docker nacos/nacos-server
- 連接自定義網(wǎng)絡(luò)
nacos與mysql不在同一個(gè)網(wǎng)絡(luò)IP,將mysql連接到自定義網(wǎng)絡(luò)(net)再連接到nacos
- 啟動(dòng)nacos集群模式(設(shè)置nacos啟動(dòng)參數(shù))
docker run -itd \ -e PREFER_HOST_MODE=ip \ -e MODE=cluster \ -e NACOS_SERVERS="172.18.0.102:8848 172.18.0.103:8848" \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=m1 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_DB_NAME=nacos \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=123456 \ -p 8848:8848 \ --name nacos01 \ --net net \ --ip 172.18.0.101 \ --restart=always \ nacos/nacos-server
docker run -itd \ -e PREFER_HOST_MODE=ip \ -e MODE=cluster \ -e NACOS_SERVERS="172.18.0.101:8848 172.18.0.103:8848" \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=m1 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_DB_NAME=nacos \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=123456 \ --name nacos02 \ --net net \ --ip 172.18.0.102 \ --restart=always \ nacos/nacos-server
docker run -itd \ -e PREFER_HOST_MODE=ip \ -e MODE=cluster \ -e NACOS_SERVERS="172.18.0.101:8848 172.18.0.102:8848" \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=m1 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_DB_NAME=nacos \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=123456 \ --name nacos03 \ --net net \ --ip 172.18.0.103 \ --restart=always \ nacos/nacos-server
如果出現(xiàn) No DataSource set
- 檢查ip是否對(duì)應(yīng)
- 是否在同一網(wǎng)段下
- 檢查數(shù)據(jù)庫(kù)名稱
- 檢查root與密碼
- 檢查數(shù)據(jù)庫(kù)中是否存在對(duì)應(yīng)的表(是否執(zhí)行腳本)
啟動(dòng)了三臺(tái):
2.2 創(chuàng)建Nginx容器
創(chuàng)建nginx配置文件:
default.conf:
upstream nacosList { server nacos01:8848 weight=1; server nacos02:8848 weight=1; server nacos03.:8848 weight=1; } server { listen 80; server_name www.zkingedu.com; location / { root /etc/nginx/html/; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location /nacos { proxy_pass http://nacosList; } }
掛載nginx:
docker run -itd \ --name nginx01 \ -v /soft/nginx/conf.d:/etc/nginx/conf.d \ -p 80:80 \ --net net \ nginx
實(shí)現(xiàn)了負(fù)載均衡,只要哪個(gè)容器下線其他的容器就開始為它服務(wù):
圖解:
以上就是nacos集群搭建Nginx負(fù)載均衡的操作詳解的詳細(xì)內(nèi)容,更多關(guān)于nacos搭建Nginx負(fù)載均衡的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
同一臺(tái)服務(wù)器安裝多個(gè)Nginx的方法總結(jié)
在同一臺(tái)服務(wù)器上安裝多個(gè)nginx完全沒有問題,但有些地方是需要注意的,這篇文章為大家整理了一些常會(huì)遇到的問題以及解決方法,需要的可以參考一下2023-08-08通過Nginx代理轉(zhuǎn)發(fā)配置實(shí)現(xiàn)跨域的方法(API代理轉(zhuǎn)發(fā))
這篇文章主要給大家介紹了關(guān)于如何通過Nginx代理轉(zhuǎn)發(fā)配置實(shí)現(xiàn)跨域(API代理轉(zhuǎn)發(fā))的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Nginx具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11服務(wù)器重啟后寶塔界面打開顯示404 nginx的解決方法
在阿里云服務(wù)器搭建寶塔界面,服務(wù)器重啟之后打開寶塔顯示404 not found nginx,本文給大家介紹了服務(wù)器重啟后寶塔界面打開顯示404 nginx的解決方法,需要的朋友可以參考下2024-02-02使用nginx打包部署前端vue項(xiàng)目完整過程(保姆級(jí)教程)
這篇文章主要給大家介紹了關(guān)于使用nginx打包部署前端vue項(xiàng)目的相關(guān)資料,包括打包命名、執(zhí)行打包命令、檢查打包成功、下載和解壓Nginx、部署到Nginx、啟動(dòng)Nginx并訪問項(xiàng)目、以及Nginx的優(yōu)勢(shì),需要的朋友可以參考下2024-11-11