日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > centos >内容正文

centos

nginx session共享_Centos下实现nginx负载均衡

發布時間:2023/12/19 centos 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx session共享_Centos下实现nginx负载均衡 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、基本思路

網絡拓撲圖

1.利用nginx實現負載均衡和反向代理,減輕主服務器訪問壓力;

2.利用springboot實現多tomcat的session共享;

IP角色

192.168.0.170nginx(主)服務器、Tomcat服務器

192.168.0.171nginx(從)服務器、Tomcat服務器

二、安裝Tengine(Nginx)并添加服務

1.Tengine簡介

Tengine是由淘寶網發起的Web服務器項目。它在Nginx的基礎上,針對大訪問量網站的需求,添加了很多高級功能和特性。Tengine的性能和穩定性已經在大型的網站如淘寶網,天貓商城等得到了很好的檢驗。它的最終目標是打造一個高效、穩定、安全、易用的Web平臺。

2.Tengine下載

http://tengine.taobao.org/download.html下載對應的Tengine版本

3.安裝nginx對應的依賴庫

yum -y install gcc openssl-devel pcre-devel zlib-devel

4.解壓縮Tengine到相對應的文件夾

tar -zxvf 到相對應的文件夾

5.配置nginx對應的選項

./configure

6.安裝Tengine

make & make install

7.添加nginx到服務并設置自啟動

vi /lib/systemd/system/nginx.service --添加文件

---------------------添加以下代碼----------------------------

[Unit]Description=The nginx HTTP and reverse proxy serverAfter=syslog.target network.target remote-fs.target nss-lookup.target [Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStartPre=/usr/local/nginx/sbin/nginx -tExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.confExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.target

# 修改文件權限

cd /lib/systemd/system/

chmod 745 nginx.service

# 設置為開機啟動 systemctl enable nginx.service

# 啟動nginx服務 systemctl start nginx.service

# 設置開機自啟動 systemctl enable nginx.service

# 停止開機自啟動 systemctl disable nginx.service

# 查看服務當前狀態 systemctl status nginx.service

# 重新啟動服務 systemctl restart nginx.service

# 查看所有已啟動的服務 systemctl list-units --type=service

8.啟動Nginx服務,瀏覽輸入http://192.168.0.170如出現nginx相應畫面標識安裝成功,nginx默認端口80

三、安裝Keepalived并添加服務

1.keepalived下載

下載方式一:

https://www.keepalived.org/download.html下載最新穩定版的keepalived,ftp上傳到home目錄下

yum install -y gcc gcc-c++ openssl-devel 安裝依賴庫,如已經安裝可不比進行此操作

下載方式二:

wget https://www.keepalived.org/software/keepalived-2.0.19.tar.gz

2.解壓縮keepalived文件

進入到home目錄先

cd /home

tar -zxvf keepalived-2.0.19.tar.gz

3.檢查配置

cd keepalived-2.0.19

./configure --prefix=/usr/local/keepalived

若系統出現如下警告

“*** WARNING - this build will not support IPVS with IPv6. Please install libnl/libnl-3 dev libraries to support IPv6 with IPVS.”

yum -y install libnl libnl-devel 執行此命令,重新進行./configure --prefix=/usr/local/keepalived 操作

4.安裝

make & make install

5.配置keepalived服務

mkdir -p /etc/keepalived

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

cp keepalived/etc/init.d/keepalived /etc/init.d/

chmod 755 /etc/init.d/keepalived

vi /lib/systemd/system/keepalived.service 編輯keepalived服務文件

將所有的字符串 “/usr/local/keepalived” 替換為空白,替換完如下:

----------------------------------------------------------------------------------------------------------------------------

[Unit]Description=LVS and VRRP High Availability MonitorAfter=network-online.target syslog.targetWants=network-online.target[Service]Type=forkingPIDFile=/run/keepalived.pid#KillMode=processEnvironmentFile=-/etc/sysconfig/keepalivedExecStart=/sbin/keepalived $KEEPALIVED_OPTIONSExecReload=/bin/kill -HUP $MAINPID[Install]WantedBy=multi-user.target

systemctl daemon-reload 重讀配置

6.修改keepalived.conf

vi /etc/keepalived/keepalived.conf

------------------------------------------------按照以下代碼修改(master服務器192.168.0.170)------------------

! Configuration File for keepalivedglobal_defs {## keepalived 自帶的郵件提醒需要開啟 sendmail 服務。 建議用獨立的監控或第三方 SMTProuter_id tdrc ## 標識本節點的字條串,通常為 hostname} ## keepalived 會定時執行腳本并對腳本執行的結果進行分析,動態調整 vrrp_instance 的優先級。如果腳本執行結果為 0,并且 weight 配置的值大于 0,則優先級相應的增加。如果腳本執行結果非 0,并且 weight配置的值小于 0,則優先級相應的減少。其他情況,維持原本配置的優先級,即配置文件中 priority 對應的值。vrrp_script chk_nginx {script "/etc/keepalived/nginx_check.sh" ## 檢測 nginx 狀態的腳本路徑interval 2 ## 檢測時間間隔weight -20 ## 如果條件成立,權重-20}## 定義虛擬路由, VI_1 為虛擬路由的標示符,自己定義名稱vrrp_instance VI_1 {state MASTER ## 主節點為 MASTER, 對應的備份節點為 BACKUPinterface ens33 ## 綁定虛擬 IP 的網絡接口,與本機 IP 地址所在的網絡接口相同, 我的是 eth0virtual_router_id 33 ## 虛擬路由的 ID 號, 兩個節點設置必須一樣, 可選 IP 最后一段使用, 相同的 VRID 為一個組,他將決定多播的 MAC 地址mcast_src_ip 192.168.0.170 ## 本機 IP 地址priority 100 ## 節點優先級, 值范圍 0-254, MASTER 要比 BACKUP 高nopreempt ## 優先級高的設置 nopreempt 解決異常恢復后再次搶占的問題advert_int 1 ## 組播信息發送間隔,兩個節點設置必須一樣, 默認 1s## 設置驗證信息,兩個節點必須一致authentication {auth_type PASSauth_pass 1111 ## 真實生產,按需求對應該過來}## 將 track_script 塊加入 instance 配置塊track_script {chk_nginx ## 執行 Nginx 監控的服務} ## 虛擬 IP 池, 兩個節點設置必須一樣virtual_ipaddress {192.168.0.180 ## 虛擬 ip,可以定義多個}}

----------------------------------------按照以下代碼修改(slave服務器192.168.0.171)-----------------------------

! Configuration File for keepalivedglobal_defs {router_id tdrc}vrrp_script chk_nginx {script "/etc/keepalived/nginx_check.sh"interval 2weight -20}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 33mcast_src_ip 192.168.0.171priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_nginx}virtual_ipaddress {192.168.0.180}}

--------------------------------------------------------------------------------------------------------------------------

7. /etc/keepalived 下添加nginx_check.sh腳本

-----------------------------------------------master(slave)服務器下添加以下代碼---------------------------------------

#!/bin/bashcounter=$(ps -C nginx --no-heading|wc -l)echo "$counter"if [ "${counter}" = "0" ]; then /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf sleep 2 counter=$(ps -C nginx --no-heading|wc -l) if [ "${counter}" = "0" ]; then /etc/init.d/keepalived stop fifi

------------------------------------------------------------------------------------------------------------------

保存后,給腳本賦執行權限:

# chmod +x /etc/keepalived/nginx_check.sh

8.重啟nginx和keepqlived

瀏覽器訪問(VIP)192.068.0.180 或192.168.0.170 或192.168.0.171

四、Nginx配置多個應用

測試需提前在192.168.0.170和192.168.0.171上部署號相應的測試應用

vi /usr/local/nginx/conf/nginx.conf

htt{}中添加

upstream cluster {

# 服務器訪問的路徑,可以指定多個服務器,此處可根據需求配置單個或者多個應用服務器、負載均衡策略

server 192.168.0.170:8080 weight=1;

server 192.168.0.171:8080 weight=1;

}

server{}中添加

location / {

proxy_pass http://cluster;

root html;

index index.html index.htm;

}

五、實現多應用服務器session共享

測試應用采用的是springboot,springboot自帶session注釋,@EnableRedisHttpSession

部分內容參考自https://blog.csdn.net/qq_33200967/article/details/80707616

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的nginx session共享_Centos下实现nginx负载均衡的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。