keeplied + nginx +tomcat 高可用部署
Tomcat 部署
本次實驗是在兩臺虛擬機器上部署tomcat中介軟體,每臺虛擬機器部署三個服務,分別使用7001、7002、7003三個埠,進行部署程式。
tomcat虛擬機器地址:
192.168.56.57
192.168.56.58
Tomcat7001配置:
進入到tomcat配置檔案,進行修改埠引數
將業務埠更改成7001埠,對外部瀏覽器訪問使用
將程式關閉的埠更改成8006 埠,該埠對內部使用。
其他幾個服務相應的去更改tomcat埠。
Nginx配置
本次反向代理使用的是軟負載nginx進行代理,分別使用了兩臺虛擬進行主備切換,保證業務正常使用。
Nginx 兩臺伺服器地址為:
192.168.56.55
192.168.56.56
Nginx 配置:
本次nginx 安裝在/usr/local/nginx目錄下面
Nginx配置檔案更改:
[root@edsir1p8 conf]# cat nginx.conf
worker_processes 4;
error_log logs/error.log;
pid logs/nginx.pid;
events {
use epoll;
worker_connections 65000;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
log_format json '{"@timestamp":"$time_iso8601",'
'"@version":"1",'
'"client":"$remote_addr",'
'"url":"$uri",'
'"status":"$status",'
'"domian":"$host",'
'"host":"$server_addr",'
'"size":"$body_bytes_sent",'
'"responsetime":"$request_time",'
'"referer":"$http_referer",'
'"ua":"$http_user_agent"'
'}';
sendfile on;
include weixin.vhost.conf;
}
[root@edsir1p8 conf]# cat weixin.vhost.conf
upstream weixin {
# ip_hash;
server 192.168.56.57:7001 weight=1;
server 192.168.56.57:7002 weight=1;
server 192.168.56.57:7003 weight=1;
server 192.168.56.58:7001 weight=1;
server 192.168.56.58:7002 weight=1;
server 192.168.56.58:7003 weight=1;
}
server {
listen 80;
server_name localhost;
location / {
# include proxy_common.conf;
proxy_pass http:// weixin;
}
access_log logs/weixin_access.log;
}
透過瀏覽器驗證
至此反向代理配置成功。
Keepalived 配置
安裝 Keepalived 略
本次實驗將 keepalived 和 nginx 安裝在一臺伺服器上。
192.168.56.55
192.168.56.56
完成上述步驟之後 keepalived 已經可以實現虛擬 IP 轉移了,但是實際應用當中我們需要的是自動進行虛擬 IP 的轉移,所以我們還需要配置 keepalived 的指令碼,使其能夠在某一個 nginx 無法提供服務的時候自動將虛擬 IP 轉移到備用伺服器,以下指令碼來自於上邊提供的連結 , 原理是透過 curl 訪問某一個連結,如果連續兩次三秒沒有響應則降低伺服器的優先順序,我們在 /etc/keepalived 目錄下建立一個名為 check_status.sh 的檔案,然後鍵入以下內容
#!/bin/bash
count=0
for (( k=0; k<2; k++ )) do check_code=$( curl --connect-timeout 3 -sL -w "%{http_code}\\n" -o /dev/null )
if [ " $check_code " != "200" ]; then
count=$(expr $count + 1)
sleep 3
continue
else
count=0
break
fi
done
if [ " $count " != "0" ]; then
exit 1
else
exit
0
Fi
chmod +x check_status.sh
後我們在 keepalived.conf 中配置指令碼,配置內容如下 :
vrrp_script check_status
{
script "/etc/keepalived/check_status.sh"
interval 5
weight -5
}
vrrp_instance VI_1
{ state MASTER # 備 keepalived 填寫 BACKUP
interface eth0
virtual_router_id 51
priority 100 # 備 keepalived 填寫 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111 }
virtual_ipaddress {
192.168.56.100
}
track_script {
check_status
}
}
配置完成後重啟 keepavlied 即可,此時如果關閉本機的 nginx 的話可以看到在 5 秒後虛擬 IP 會漂移到備用伺服器上去,這裡因為演示的話圖片太多了,就不上圖片了, nginx 退出可以執行 nginx -s stop 命令,如果是使用 yum 安裝的 nginx 可以透過 systemctl 來停止 nginx 服務
模擬主nginx當機
[root@edsir1p8 conf]# killall nginx
繼續訪問虛擬地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30345407/viewspace-2680427/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Nginx + Keepalived 高可用叢集部署Nginx
- nt高可用部署
- 搭建Keepalived + Nginx + Tomcat的高可用負載均衡架構NginxTomcat負載架構
- Keepalived+Nginx+Tomcat配置高可用負載均衡系統示例NginxTomcat負載
- Nginx負載均衡高可用Nginx負載
- nginx+keepalived高可用Nginx
- 高可用系列文章之三 - NGINX 高可用實施方案Nginx
- springcloud-高可用部署SpringGCCloud
- Canal高可用架構部署架構
- Spark Standalone模式 高可用部署Spark模式
- keepalived + nginx 實現高可用Nginx
- nginx實現keepalived高可用Nginx
- Nginx+Tomcat部署負載均衡NginxTomcat負載
- InstallAnyWhere的tomcat,sql,nginx部署TomcatSQLNginx
- mysql MHA 高可用架構部署MySql架構
- Nginx&Keepalived 實現高可用Nginx
- 生成環境之Nginx高可用方案Nginx
- 7. Nginx實現高可用配置Nginx
- nginx內建高可用配置與第三方高可用模組nginx_ustream_check_mudule配置Nginx
- Nginx+Tomcat Https SSL部署方案NginxTomcatHTTP
- java程式設計—如何搭建Keepalived+Nginx+Tomcat高可用負載均衡架構Java程式設計NginxTomcat負載架構
- Rabbitmq叢集高可用部署詳細MQ
- Redis之Sentinel高可用安裝部署Redis
- MySQL高可用MMM方案安裝部署MySql
- 使用keepalived實現nginx的高可用Nginx
- 使用nginx搭建高可用,高併發的wcf叢集Nginx
- Kafka高可用叢集部署與配置指南Kafka
- MySQL高可用方案-PXC環境部署記錄MySql
- Keepalived實現Nginx負載均衡高可用Nginx負載
- Nginx 和 Keepalived 實現站點高可用Nginx
- Nginx+Keepalived實現高可用站點Nginx
- nginx反向大理和負載均衡以及高可用Nginx負載
- Ubuntu下Java、Nginx和Tomcat的安裝部署UbuntuJavaNginxTomcat
- ProxySQL Cluster 高可用叢集環境部署記錄SQL
- 部署MHA+keepalived+ProxySQL高可用架構SQL架構
- MySQL 高可用架構 - MHA環境部署記錄MySql架構
- 在Rainbond上部署高可用Apollo叢集AI
- Jumpserver雙機高可用環境部署筆記Server筆記