Nginx 부하 균형 약술

4729 단어
최근 의 프로젝트 에서 고객 은 응용의 높 은 사용 가능, 높 은 안정, 높 은 안전성 을 확보 해 야 한다.실제 목표 시청자 분석 을 통 해 우 리 는 최종 적 으로 Nginx 를 이용 하여 부하 균형 을 이룬다.
왜 Nginx 를 사용 합 니까?
1. 역방향 대 리 를 실현 한다.역방향 프 록 시, 즉 프 록 시 서버 로 클 라 이언 트 요청 을 받 아들 여 내부 서버 에 전송 하고 서버 에서 얻 은 결 과 를 클 라 이언 트 에 게 되 돌려 줍 니 다.참고 로 프 록 시, 즉 클 라 이언 트 가 퍼 가기 프 록 시 를 설정 하여 다른 사이트 에 방문 하 는 것 입 니 다. 요청 은 프 록 시 서버 를 거 쳐 원본 서버 에서 응답 결 과 를 받 은 후에 클 라 이언 트 에 게 전달 합 니 다.요약 하면 프 록 시 클 라 이언 트 에 클 라 이언 트 를 숨 기 고 프 록 시 서버 를 반대 하 며 서버 를 숨 기 는 것 입 니 다.
2. 부하 균형 실현.데이터 부 하 를 서로 다른 서비스 단위 로 나 누 어 서버 의 높 은 사용 을 보장 합 니 다.Nginx 내장 정책 은 가중 폴 링 과 ip 가 있 습 니 다.hash, fair / url 도 지원 합 니 다.hash 등 제3자 확장 정책.
3. 동정 분 리 를 실현 한다.css / js / 그림 등 정적 파일 을 프 록 시 서버 에 맡 기 고 다른 동적 자원 은 프 록 시 서버 를 통 해 내부 서버 로 전송 하여 결 과 를 되 돌려 줍 니 다.동정 분 리 를 실현 하 는 동시에 부하 균형 에 도 어느 정도 참여 했다.
Nginx 설치 설정
1.          
yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
2.   PCRE,PCRE      Ngnix    Rewrite   
#wgethttp://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
#tar zxvf pcre-8.35.tar.gz
#cd pcre-8.35
#./configure
#make && make install
3.   Nginx
http://nginx.org/
#wgethttp://nginx.org/download/nginx-1.11.6.tar.gz
#tar zxvf nginx-1.11.6.tar.gz
#cd nginx-1.11.6
#./configure (--prefix=/usr/local/webserver/nginx--with-http_stub_status_module 
--with-http_ssl_module--with-pcre=/usr/local/src/pcre-8.35)
#make && make install
#/usr/local/webserver/nginx/sbin/nginx -v     nginx  
 :    prefix,Nginx     /usr/local   :
/usr/local/nginx/sbin/nginx -t             ngnix.conf      
/usr/local/nginx/sbin/nginx             Nginx
/usr/local/nginx/sbin/nginx -s stop    Nginx
/usr/local/nginx/sbin/nginx -s reopen   Nginx
/usr/local/nginx/sbin/nginx -s reload        

프로필 예제:
#user  nobody;        #Nginx    
worker_processes  1;  #       ,    CPU    2  CPU
(worker_processes auto;worker_cpu_affinity auto;          cpu)
#    :    
#error_log logs/error.log;
#error_log logs/error.log  notice;
#error_log logs/error.log  info;
#pid(     ):    
#pid       logs/nginx.pid;
#      = worker_processes * worker_connections/4
events {
   worker_connections  1024;#           
}
http {
    #  mime  ,   mime.type    
    include       mime.types;
    default_type  application/octet-stream;
#(      。
$remote_addr $http_x_forwarded_for        ip  ;
$remote_user:           ;
$time_local:           ;
$request:       url http  ;
$status:        ;   200,
$body_bytes_sent:                ;
$http_referer:                ;
$http_user_agent:            ;
  web            ,           IP   ,  $remote_add   IP           iP  。
             http    ,    x_forwarded_for  ,          IP                 。)
    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         ,   access_log             ;
    #access_log  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
    upstream192.168.20.35 {
    server   192.168.20.35:9001 weight=3 max_fails=2fail_timeout=30s;
    server   192.168.20.35:9002 weight=3 max_fails=2fail_timeout=30s;
    ip_hash;
    }
    server {
    listen       8111;
    server_name  192.168.20.35;
    index index.jsp index.html index.htm;
    #      
    root  /home/lgip_fastdfs/apache-tomcat-7.0.73/webapps/ROOT;
    location /
    {
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
        proxy_set_header Host  $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_passhttp://192.168.20.35;
        #expires      3d;
    }
 #       nginx.conf   upstream   
    location ~.*\.(php|jsp|cgi)?$
    {
    #root/home/lgip_fastdfs/apache-tomcat-7.0.73/webapps/ROOT/WEB-INF;
        proxy_set_header Host  $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_passhttp://192.168.20.35;
    }
    #  Nginx    ,          Nginx      。
    location ~.*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
    {
    root/home/lgip_fastdfs/apache-tomcat-7.0.73/webapps/ROOT/WEB-INF;
    #expires             3 ,          ,      ,                 
    expires      3d;
    }
    #  Nginx       
    access_log /home/lgip_fastdfs/data/logs/nginx_lgip/access.log main;
    error_log  /home/lgip_fastdfs/data/logs/nginx_lgip/error.log  crit;
    }
}

좋은 웹페이지 즐겨찾기