建站服務器
使用keepalived nginx tomcat搭建高性能web服務器集群,前端用nginx做反向代理實現負載均衡,同時結合keepalived對nginx實現高可用,后端使用tomcat做動態jsp解析,實現了動靜分離。
(本文永久地址:http://woymk.blog.51cto.com/10000269/1928716)
搭建環境:centos 6.9
準備四臺服務器
vip: 192.168.75.130
master: 192.168.75.131 (安裝nginx做反向代理實現負載勻衡,結合keepalived實現高可用)
backup: 192.168.75.132 (同上)
web1: 192.168.75.151 (安裝nginx和tomcat實現動靜分離)
web2: 192.168.75.152 (同上)
這里為節省服務器,nginx和tomcat裝在了一臺服務上,也可以分開配置。
配置步驟如下:
1. 安裝nginx、tomcat軟件
四臺服務器分別安裝好nginx
安裝方法參見:lnmp環境搭建
web1,web2上分別安裝好tomcat
安裝方法參見:tomcat8.5的安裝配置
web1, web2上分別啟動nginx和tomcat
service nginx start
service tomcat start
2. 在master和backup上配置nginx
vi /usr/local/nginx/conf/nginx.conf
加入或修改以下內容:
upstreamweb_nginx {
server 192.168.75.151;
server 192.168.75.152;
}
upstreamweb_tomcat {
#ip_hash;
server 192.168.75.151:8080;
server 192.168.75.152:8080;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://web_nginx/;
proxy_set_header host $host;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
}
location ~ \\\\.jsp$ {
proxy_pass http://web_tomcat/;
}
}
分別在master和backup上啟動nginx服務
service nginx start
3. 配置keepalived
在master和backup上分別安裝keepalived
yum install -y keepalived
1) 配置master
vi /etc/keepalived/keepalived.conf
清空原文,加入如下內容:
! configuration file for keepalived
global_defs {
notification_email {
#acassen@firewall.loc
#failover@firewall.loc
#sysadmin@firewall.loc
}
#notification_email_from alexandre.cassen@firewall.loc
#smtp_server 192.168.200.1
#smtp_connect_timeout 30
router_id lvs_devel
}
vrrp_script chk_http_port {
script </dev/tcp/127.0.0.1/80
interval 1
weight -2
}
vrrp_instance vi_1 {
state master
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type pass
auth_pass 1111
}
virtual_ipaddress {
192.168.75.130
}
track_script {
chk_http_port
}
}
2) 配置backup
scp 192.168.75.131:/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
vi /etc/keepalived/keepalived.conf
backup的配置文件只需要修改
state master -> state backup
priority 100 -> priority 99
最后,分別在master和backup上啟動keepalived服務,先主后備
/etc/init.d/keepalived start
4. 測試:
在master上停止nginx服務
[root@master ~]# /etc/init.d/nginx stop
停止 nginx: [確定]
在backup上查看日志
[root@backup ~]# tail -f /var/log/messages
may 23 17:21:33 backup keepalived_vrrp[1818]: vrrp_instance(vi_1) forcing a new master election
may 23 17:21:33 backup keepalived_vrrp[1818]: vrrp_instance(vi_1) forcing a new master election
may 23 17:21:34 backup keepalived_vrrp[1818]: vrrp_instance(vi_1) transition to master state
may 23 17:21:35 backup keepalived_vrrp[1818]: vrrp_instance(vi_1) entering master state
may 23 17:21:35 backup keepalived_vrrp[1818]: vrrp_instance(vi_1) setting protocol vips.
may 23 17:21:35 backup keepalived_vrrp[1818]: vrrp_instance(vi_1) sending gratuitous arps on eth0 for 192.168.75.130
may 23 17:21:35 backup keepalived_healthcheckers[1817]: netlink reflector reports ip 192.168.75.130 added
may 23 17:21:40 backup keepalived_vrrp[1818]: vrrp_instance(vi_1) sending gratuitous arps on eth0 for 192.168.75.130
日志顯示已經成功切換到備用節點上。
[root@backup ~]# curl 192.168.75.130 -i
http/1.1 200 ok
server: nginx/1.10.3
date: tue, 23 may 2017 09:34:21 gmt
content-type: text/html
content-length: 616
connection: keep-alive
last-modified: mon, 22 may 2017 10:28:07 gmt
etag: 5922bd37-268
accept-ranges: bytes
master停掉后,用curl訪問web服務,一切正常。
繼推出國內首款NVMe存儲Mach后 宏杉將NVMe全閃從產品到解決方案系列化企業云服務器怎么看創建日期的時間限制ssl證書顯示不安全用的好好的突然就不解析了阿里云ecs云服務器購買須知虛擬主機到期需要續費嗎學習php jQuery Ajax實現點贊效果的方法怎么購買釘釘云服務器