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ù)的唯一編號 每個mysql服務(wù)Id需唯一 server-id=1 #服務(wù)端口號 默認(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è)置臨時目錄 #tmpdir=/tmp # 用戶 user=mysql # 允許訪問的IP網(wǎng)段 bind-address=0.0.0.0 # 跳過密碼登錄 #skip-grant-tables #主要用于MyISAM存儲引擎,如果多臺服務(wù)器連接一個數(shù)據(jù)庫則建議注釋下面內(nèi)容 #skip-external-locking #只能用IP地址檢查客戶端的登錄,不用主機名 #skip_name_resolve=1 #事務(wù)隔離級別,默認(rèn)為可重復(fù)讀,mysql默認(rèn)可重復(fù)讀級別(此級別下可能參數(shù)很多間隙鎖,影響性能) #transaction_isolation=READ-COMMITTED #數(shù)據(jù)庫默認(rèn)字符集,主流字符集支持一些特殊表情符號(特殊表情符占用4個字節(jié)) character-set-server=utf8mb4 #數(shù)據(jù)庫字符集對應(yīng)一些排序等規(guī)則,注意要和character-set-server對應(yīng) collation-server=utf8mb4_general_ci #設(shè)置client連接mysql時的字符集,防止亂碼 init_connect='SET NAMES utf8mb4' #是否對sql語句大小寫敏感,1表示不敏感 lower_case_table_names=1 #最大連接數(shù) max_connections=400 #最大錯誤連接數(shù) max_connect_errors=1000 #TIMESTAMP如果沒有顯示聲明NOT NULL,允許NULL值 explicit_defaults_for_timestamp=true #SQL數(shù)據(jù)包發(fā)送的大小,如果有BLOB對象建議修改成1G max_allowed_packet=128M #MySQL連接閑置超過一定時間后(單位:秒)將會被強行關(guān)閉 #MySQL默認(rèn)的wait_timeout 值為8個小時, interactive_timeout參數(shù)需要同時配置才能生效 interactive_timeout=1800 wait_timeout=1800 #內(nèi)部內(nèi)存臨時表的最大值 ,設(shè)置成128M。 #比如大數(shù)據(jù)量的group by ,order by時可能用到臨時表, #超過了這個值將寫入磁盤,系統(tǒng)IO壓力增大 tmp_table_size=134217728 max_heap_table_size=134217728 #禁用mysql的緩存查詢結(jié)果集功能 #后期根據(jù)業(yè)務(wù)情況測試決定是否開啟 #大部分情況下關(guān)閉下面兩項 #query_cache_size = 0 #query_cache_type = 0 #數(shù)據(jù)庫錯誤日志文件 #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 #針對log_queries_not_using_indexes開啟后,記錄慢sql的頻次、每分鐘記錄的條數(shù) log_throttle_queries_not_using_indexes=5 #作為從庫時生效,從庫復(fù)制中如何有慢sql也將被記錄 log_slow_slave_statements=1 #慢查詢執(zhí)行的秒數(shù),必須達(dá)到此值可被記錄 long_query_time=8 #檢索的行數(shù)必須達(dá)到此值才可被記為慢查詢 min_examined_row_limit=100 #mysql binlog日志文件保存的過期時間,過期后自動刪除 #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不在同一個網(wǎng)絡(luò)IP,將mysql連接到自定義網(wǎng)絡(luò)(net)再連接到nacos
- 啟動nacos集群模式(設(shè)置nacos啟動參數(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是否對應(yīng)
- 是否在同一網(wǎng)段下
- 檢查數(shù)據(jù)庫名稱
- 檢查root與密碼
- 檢查數(shù)據(jù)庫中是否存在對應(yīng)的表(是否執(zhí)行腳本)
啟動了三臺:
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
實現(xiàn)了負(fù)載均衡,只要哪個容器下線其他的容器就開始為它服務(wù):
圖解:
以上就是nacos集群搭建Nginx負(fù)載均衡的操作詳解的詳細(xì)內(nèi)容,更多關(guān)于nacos搭建Nginx負(fù)載均衡的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
通過Nginx代理轉(zhuǎn)發(fā)配置實現(xiàn)跨域的方法(API代理轉(zhuǎn)發(fā))
這篇文章主要給大家介紹了關(guān)于如何通過Nginx代理轉(zhuǎn)發(fā)配置實現(xiàn)跨域(API代理轉(zhuǎn)發(fā))的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Nginx具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11服務(wù)器重啟后寶塔界面打開顯示404 nginx的解決方法
在阿里云服務(wù)器搭建寶塔界面,服務(wù)器重啟之后打開寶塔顯示404 not found nginx,本文給大家介紹了服務(wù)器重啟后寶塔界面打開顯示404 nginx的解決方法,需要的朋友可以參考下2024-02-02