Linux 셸 HTTP 서비스 예제 코드 구현

2825 단어 linuxshellhttp
머리말
프 록 시 HAProxy 를 사용 하여 Mysql 에 부하 균형 을 맞 추 는 것 은 일반적인 방안 입 니 다.사용 성 을 높이 기 위해 서 는 어떤 Mysql 에 문제 가 생 겼 을 때,예 를 들 어 서버 가 고장 났 거나 데이터 복사 가 중단 되 었 을 때 HAProxy 가 바로 알 고 전송 요청 을 중단 하 는 것 이 좋 습 니 다.
HAProxy 는 Mysql 에 문제 가 있 는 지 어떻게 압 니까?
2.해결 방향
(1)셸 스 크 립 트 를 작성 하여 my sql 상 태 를 확인 한 다음 결 과 를 출력 합 니 다.예 를 들 어 상태 가 정상 일 때 상태 코드 200 과 정확 한 정 보 를 되 돌려 줍 니 다.그렇지 않 으 면 상태 코드 503 과 오류 정 보 를 되 돌려 줍 니 다.
(2)연결 요청 이 있 으 면 위의 검사 스 크 립 트 를 호출 하여 검사 결 과 를 되 돌려 줍 니 다.
(3)HAProxy 가 이 HTTP 서 비 스 를 방문 하여 되 돌아 오 는 결과 정보 에 따라 이 mysql 을 사용 할 수 있 는 지 여 부 를 판단 합 니 다.
어떻게 하면 셸 스 크 립 트 를 호출 할 수 있 는 HTTP 서 비 스 를 신속하게 실현 할 수 있 습 니까?
비교적 통용 되 는 방안 은 xinetd 이다.
xinetd 는 Linux 의 데 몬 입 니 다.모두 extended interent daemon 이 라 고 부 르 며 확 장 된 네트워크 데 몬 입 니 다.
xinetd 는 포트 를 열 고 연결 을 기다 릴 수 있 습 니 다.xinetd 가 어떤 스 크 립 트 를 실행 하 는 지 알려 줄 수 있 습 니 다.연결 이 들 어 오 면 xinetd 는 스 크 립 트 를 실행 하고 스 크 립 트 출력 내용 을 직접 되 돌려 줍 니 다.HAProxy -> xinetd -> mysql-check 스 크 립 트 에서 HAProxy 는 my sql 의 상태 정 보 를 얻 었 습 니 다.
xinetd 설정 사례
다음은 간단 한 xinetd 예제 를 실현 하고 9200 포트 를 열 어 테스트 스 크 립 트 의 출력 내용 을 되 돌려 줍 니 다.
만약 기계 에 xinetd 가 없다 면,먼저 설치 하고,centos 7 에서 명령 yum install xinetd 을 사용 할 수 있 습 니 다.
(1)테스트 스 크 립 트

#!/bin/bash

echo `uptime | egrep -o 'up ([0-9]+) days' | awk '{print $2}'`
이 스 크 립 트 는 현재 서버 의 온라인 일 수 를 출력 하 는 데 사 용 됩 니 다.chmod +x 으로 스 크 립 트 에 실행 가능 한 권한 을 추가 합 니 다.
(2)xinetd 서비스 작성
예 를 들 어 서비스 이름 은 helloworld 이 고 파일 이름 은 /etc/xinetd.d/helloworld 이 며 내용 은

service helloworld

{

disable = no

port  = 9200

socket_type   = stream

protocol    = tcp

wait      = no

user      = root

server     = /root/test.sh

server_args   = test

}
port 지정 감청 포트server 실행 할 스 크 립 트 지정
(3)가입 서비스 목록
수정
9200 포트 를 정의 하 는 위 치 를 찾 아 기 존의 주석 을 지우 고 /etc/services 서 비 스 를 추가 합 니 다.

helloworld   9200/tcp

#wap-wsp     9200/tcp

#wap-wsp     9200/udp
(4)xinetd 다시 시작
centos 의 재 부팅 명령 은:

systemctl restart xinetd.service
(5)테스트
각각 helloworld nc 두 명령 으로 테스트 해 보 세 요.

nc localhost 9200

telnet localhost 9200

스 크 립 트 실행 내용 을 정확하게 출력 하여 예제 를 완성 할 수 있 습 니 다.
총결산
Linux 셸 이 HTTP 서 비 스 를 실현 하 는 내용 은 여기까지 입 니 다.여러분 의 업무 와 학습 에 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 댓 글로 토론 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기