Nginx + keepalived + tomcat 고가 용 + 부하 균형 실현
6802 단어 부하 균형고가 용nginx부하 균형 과 고가 용
구축 환경:
192.168.127.141 (master nginx+keepalived+tomcat)
192.168.127.130 (backup nginx+keepalived+tomcat )
vip 192.168.127100 (실제 환경 에서 이 ip 는 클 라 이언 트 가 방문 할 수 있 도록 공공 네트워크 주소 가 필요 합 니 다)
실 현 된 기능 은 다음 과 같다.
1) 、 Master 서버 가 끊 어 지지 않 으 면 Master 는 vip 를 차지 하고 nginx 는 Master 에서 실 행 됩 니 다.
2) 、 Master 서버 가 끊 으 면 backup 이 vip 를 선점 하고 backup 에서 nginx 서 비 스 를 실행 합 니 다.
3) master 서버 의 nginx 서비스 가 끊 기 면 vip 자원 이 backup 서버 로 전 이 됩 니 다.
4) 백 엔 드 서버 의 건강 상태 확인
master:
하나. nginx 와 keepalived 설치:
1 keepalived 설치 및 컴 파일 설치 nginx
yum -y install keepalived
wget http://nginx.org/download/nginx-1.6.2.tar.gz
[root@ ~]#tar xf nginx-1.6.2.tar.gz
[root@ ~]#yum -y groupinstall "Development tools" "Server Platform Development"
[root@ ~]#yum -y install pcre-devel
[root@ ~]# cd nginx-1.6.2
[root@ nginx]# groupadd nginx
[root@ nginx]# useradd -r -g nginx nginx
[root@ nginx]#./configure \
--prefix=/usr\
--sbin-path=/usr/sbin/nginx\
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/\
--http-proxy-temp-path=/var/tmp/nginx/proxy/\
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/\
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi\
--http-scgi-temp-path=/var/tmp/nginx/scgi\
--with-pcre
make && make install
2 nginx 의 시작 스 크 립 트 편집
vi /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 30 21
# description: http service.
# Source Function Library
. /etc/init.d/functions
# Nginx Settings
NGINX_SBIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
NGINX_PID="/usr/local/nginx/logs/nginx.pid"
RETVAL=0
prog="Nginx"
start() {
echo -n $"Starting $prog: "
mkdir -p /dev/shm/nginx_temp
daemon $NGINX_SBIN -c $NGINX_CONF
RETVAL=$?
echo
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -TERM
rm -rf /dev/shm/nginx_temp
RETVAL=$?
echo
return $RETVAL
}
reload(){
echo -n $"Reloading $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -HUP
RETVAL=$?
echo
return $RETVAL
}
restart(){
stop
start
}
configtest(){
$NGINX_SBIN -c $NGINX_CONF -t
return 0
}
3 keepalived. conf 프로필 수정
global_defs {
notification_email {
root@localhost
}
notification_email_from admin@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LTT
}
vrrp_script chk_nginx { # nginx , ,
script "killall -0 nginx" # shell nginx
interval 1 # 1
weight -2 # nginx , -2
fall 2 #
rise 1 #
}
vrrp_instance IN_1 {
state MASTER
interface eth0
virtual_router_id 22
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass aaaa
}
virtual_ipaddress {
192.168.127.100
}
track_script {
chk_nginx # vrrp_script
}
}
4 keepalive 와 nginx 서 비 스 를 시작 합 니 다.
/etc/init.d/nginx start
/etc/init.d/keepalived start
Backup:
1. keepalived 설치 및 컴 파일 설치 nginx
master 와 같 습 니 다 (첫 번 째 단계 와 두 번 째 단계)
3 keepalived 프로필 수정
master 에서 이 프로필 을 복사 한 다음 변경 합 니 다.
vim keepalived.conf # Master copy ,
state BACKUP
# MASTER BACKUP
priority 99
# 100 99
4 서비스 오픈
/etc/init.d/nginx start
/etc/init.d/keepalived start
#######################################################################################
두 대의 서버 에 tomcat 설치:
자세 한 과정 은 다음 과 같다.http://825536458.blog.51cto.com/4417836/1831678
둘 째 는 master 와 backup 두 서버 에 nginx 부하 균형 을 설정 합 니 다.
BACKUP:
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
# include vhosts/*.conf;
upstream web_server {
server 192.168.127.130:8080 weight=1;
server 192.168.127.141:8080 weight=1;
}
server
{
listen 80;
server_name 192.168.127.130;
index index.html index.htm;
root /usr/local/nginx/html/ROOT;
location / {
proxy_pass http://web_server;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
MASTER:
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
# include vhosts/*.conf;
upstream web_server {
server 192.168.127.130:8080 weight=1;
server 192.168.127.141:8080 weight=1;
}
server
{
listen 80;
server_name 192.168.127.141;
index index.html index.htm;
root /usr/local/nginx/html/ROOT;
location / {
proxy_pass http://web_server;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
그리고 양쪽 에서 nginx 서 비 스 를 다시 시작 합 니 다.
삼 테스트
1. master 위의 nginx 서 비 스 를 중단 하고 클 라 이언 트 가 사 이 트 를 정상적으로 방문 할 수 있 는 지 확인 하 며 vip 가 backup 위로 이동 할 수 있 는 지 확인 합 니 다.
2 master 위 에 있 는 keepalived 서 비 스 를 중단 합 니 다. 클 라 이언 트 가 사 이 트 를 정상적으로 방문 할 수 있 는 지, 그리고 vip 가 backup 위로 이동 할 수 있 는 지 확인 합 니 다.
3 웹 서비스 중 하 나 를 중단 하고 웹 에 정상적으로 접근 할 수 있 는 지 확인 합 니 다.
브 라 우 저 로 접근http://192.168.127.100검증 하면 됩 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Haproxy 웹 클러스터 구축실험 준비: Haproxy 서버 1대, Nginx 서버 2대, 클라이언트 1대(로컬 컴퓨터 사용) Nginx 서버: ### 참고: 둘 다 비슷한 작업을 수행해야 합니다. Haproxy 서비스: 테스트: 클라이언트가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.