HA - Proxy + Nginx 웹 부하 균형 구현 (nginx 편)

본 고 는 두 편, 한 편 nginx 설정, 한 편 haproxy 설정 으로 나 뉘 는데 이 글 은 nginx 설정 입 니 다.
실험 환경:                         
HAProxy  IP:10.2.18.219 Centos6.4-64bit
Web1 IP:10.2.16.254 Centos6.4-64bit           
Web2 IP:10.2.16.253 Centos6.4-64bit
vlan  ,  web    nginx,  web      

nginx 에 대한 소 개 는 더 이상 말 하지 않 겠 습 니 다. 다음은 설치 설정 을 직접 말씀 드 리 겠 습 니 다.
이 예 는 nginx - 1.6.0 버 전 을 사용 합 니 다.
우선 설치 의존
yum -y install pcre*     (이 컴퓨터 에 필요 한 의존 도 는 pcre 이 며, 컴 파일 알림 에 따라 설치 의존 도 를 선택 할 수 있 습 니 다)
압축 해제 설치 nginx:
tar -zxvf nginx-1.6.0.tar.gz  -C ./
mkdir  /usr/local/nginx      #nginx 루트 디 렉 터 리 만 들 기
cd nginx-1.6.0
./configure   --prefix=/usr/local/nginx
make  && make install
설치 완료 후 프로필 수정
 Nginx 프로필 은 주로 main (전역 설정), server (호스트 설정), upstream (부하 균형 서버 설정) 과 location (URL 이 특정 위치 에 맞 는 설정) 으로 나 뉜 다.main 부분 에서 설정 한 명령 은 다른 모든 설정 에 영향 을 줍 니 다.server 부분의 명령 은 주로 호스트 와 포트 를 지정 하 는 데 사 용 됩 니 다.upstream 명령 은 주로 부하 균형 에 사용 되 며 일련의 백 엔 드 서버 를 설정 합 니 다.location 부분 은 웹 페이지 위치 와 일치 하 는 데 사 용 됩 니 다.이 네 가지 관계 식: server 계승 main, location 계승 server, upstream 은 다른 설정 도 계승 하지 않 고 계승 되 지 않 습 니 다.
vim  nginx.conf     #다음은 이 예 에서 nginx 설정 입 니 다. 비교적 간단 합 니 다.
user  nobody;       #Nginx Worker 프로 세 스 를 지정 하여 사용자 와 사용자 그룹 을 실행 합 니 다. 기본 값 은 nobody 계 정 에서 실 행 됩 니 다.      
worker_processes  5;   #Nginx 가 시작 할 프로 세 스 수 를 지정 하 였 습 니 다.Nginx 프로 세 스 마다 평균 10M ~ 12M 의 메모 리 를 소모 합 니 다.경험 치 에 따라 일반적으로 하나의 프로 세 스 를 지정 하면 충분 합 니 다. 다 중 핵 CPU 라면 CPU 와 같은 프로 세 스 수 를 지정 하 는 것 을 권장 합 니 다.
error_log  logs/error.log  notice;   #전역 오류 로그 파일 을 정의 하 는 데 사용 합 니 다.로그 출력 단 계 는 debug, info, notice, warn, error, crit 가 선택 할 수 있 습 니 다. 그 중에서 debug 출력 로그 가 가장 상세 하고 crit 출력 로그 가 가장 적 습 니 다.
pid        logs/nginx.pid;   #pid 파일 위치 지정
events {                      #이벤트 명령 은 Nginx 의 작업 모드 와 연결 수 상한 선 을 설정 합 니 다.
    use epoll;                #Nginx 의 작업 모드 를 epoll 로 지정 합 니 다. Nginx 가 지원 하 는 작업 모드 는 select, poll, kqueue, epoll, rtsig, / dev / poll 입 니 다. 그 중에서 select 와 poll 은 모두 표준 작업 모드 입 니 다. kqueue 와 epoll 은 효율 적 인 작업 모드 입 니 다. 다른 것 은 epoll 은 Linux 플랫폼 에 사용 되 고 kqueue 는 BSD 시스템 에 사 용 됩 니 다. Linux 시스템 에 대해 서 는 epoll 작업 모드 가 우선 입 니 다.
    worker_connections  1024;   #Nginx 의 모든 프로 세 스 의 최대 연결 수 를 정의 하 는 데 사용 합 니 다. 기본 값 은 1024 입 니 다.
}
       #최대 클 라 이언 트 연결 수 는 위 에서 정의 하 는 workerprocesses 와 이 workerconnections 결정, 즉 최대 연결 수 = workerprocesses*worker_connections, 역방향 에이전트 일 때 최대 연결 수 = workerprocesses * worker_connections / 4 프로 세 스 의 최대 연결 수 는 Linux 시스템 프로 세 스 의 최대 열 린 파일 수 에 제한 을 받 습 니 다. 운영 체제 명령 "ulimit - n 65536" 을 실행 한 후 workerconnections 설정 이 유효 합 니 다.
http {                                         #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"';
    access_log  logs/access.log  main;         #로그 에 접근 할 경 로 를 지정 합 니 다.
    sendfile        on;                        #고 효율 파일 전송 모드 열기
    keepalive_timeout  60;   #클 라 이언 트 연결 은 활동 시간 을 초과 합 니 다. 이 시간 을 초과 하면 서버 가 이 연결 을 닫 습 니 다.
    gzip  on;                                  #GZIP 압축 을 열 고 출력 데이터 흐름 을 실시 간 으로 압축 합 니 다.
    gzip_min_length  1100;         #압축 을 허용 하 는 페이지 의 최소 바이트 수 입 니 다. 페이지 의 바이트 수 는 header 헤더 의 Content - Length 에서 가 져 옵 니 다. 기본 값 은 0 입 니 다. 페이지 가 많 든 많 든 압축 을 합 니 다. 1K 이상 의 바이트 수로 설정 하 는 것 을 권장 합 니 다. 1K 보다 작 으 면 눌 릴 수록 클 수 있 습 니 다.   
    gzip_buffers     4 8k;         #4 개 단위 8K 의 메모 리 를 압축 결과 스 트림 캐 시 로 신청 합 니 다. 기본 값 은 원본 데이터 크기 와 같은 메모리 공간 을 신청 하여 gzip 압축 결 과 를 저장 하 는 것 입 니 다.
    gzip_types     text/plain;   #압축 형식 을 지정 합 니 다. 지정 하 든 안 하 든 'text / html' 형식 은 항상 압축 됩 니 다. 
    output_buffers   1 32k;        
    postpone_output  1460;
    
    server {                                  #가상 호스트 설정
        listen       80;                      #가상 호스트 의 서비스 포트 지정
        server_name  10.2.16.254  www.czy.com; #IP 주소 나 도 메 인 이름 을 지정 하고 여러 도 메 인 이름 사 이 를 빈 칸 으로 구분 합 니 다.
        charset utf8;                          #웹 페이지 기본 인 코딩 형식 지정
        access_log  logs/czy.access.log  main;  #가상 호스트 의 로그 파일 지정
        location / {                            #URL 매 칭 설정 (URL 주소 매 칭 은 Nginx 설정 에서 가장 유연 한 부분 입 니 다. location 은 정규 표현 식 매 칭 을 지원 하고 조건 판단 매 칭 도 지원 합 니 다. 사용 자 는 location 명령 을 통 해 Nginx 대 동, 정적 웹 페이지 를 여과 처리 할 수 있 습 니 다.
            root   html;                        #웹 파일 저장 폴 더 지정
            index  index.html index.htm;        #첫 페이지 파일
        }
        error_page   500 502 503 504  /50x.html;  #가상 호스트 의 오류 정보 반환 페이지 를 설정 하 였 습 니 다.
        location = /50x.html {                    #error page 명령 은 각종 오류 정보의 반환 페이지 를 맞 출 수 있 습 니 다. 특히 이 오류 정보의 반환 페이지 크기 는 512 K 를 초과 해 야 합 니 다.
            root   html;                        #웹 파일 저장 폴 더 지정    
        }
       }
 }
:wq
종료 저장, nginx 프로필 이 완료 되 었 습 니 다!
시작 nginx:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
시작 에 성공 하면 같은 동작 은 다른 웹 2 서버 에서 두 대의 nginx 가 모두 설정 되면 HA - proxy 를 설정 합 니 다.

좋은 웹페이지 즐겨찾기