nginx 군집 과 동정 분리 초기 설정

4764 단어 nginx
  • nginx 설치
  •         에서 nginx 설치 설명 을 참고 하여 nginx 에서 location 의 디 버 깅 을 편리 하 게 하기 위해 nginx - echo 모듈 을 설치 하고 nginx - echo 모듈 을 추가 하 는 방식 은 다음 과 같 습 니 다.
            1. 먼저 nginx - echo 모듈 소스 코드 다운로드:https://github.com/agentzh/echo-nginx-module/tags
            2. 특정한 경로 로 압축 을 풀 고 / path / to / echo - nginx - module 로 가정 합 니 다.
            3. $ ./configure --prefix=/opt/nginx --add-module=/path/to/echo-nginx-module
            4. make install
            테스트 를 통 해 nginx 설치 가 끝 난 후에 도 위의 명령 을 사용 한 후에 nginx 의 설정 파일 내용 은 교체 되 지 않 고 echo 모듈 에 대한 지원 만 추 가 했 습 니 다.
     
  • nginx 를 사용 하여 여러 js 와 css 를 합 쳐 요청 합 니 다
  •          참고:https://github.com/alibaba/nginx-http-concat , 설치 방식 참조:
    # cd /usr/local/src/
    # wget http://nginx.org/download/nginx-1.4.2.tar.gz
    # wget https://github.com/alibaba/nginx-http-concat/archive/master.zip -O nginx-http-concat-master.zip
    # unzip nginx-http-concat-master.zip
    # tar -xzvf nginx-1.4.2.tar.gz
    # cd nginx-1.4.2
    # ./configure --prefix=/usr/local/nginx-1.4.2 --with-http_stub_status_module \
    --add-module=../nginx-http-concat-master
    # make
    # make install
           
    주: 1. concat 모듈 의 기본 js 파일 의 요청 형식 은 application / x - javascript 이 고, nginx 에서 js 파일 의 요청 형식 은 application / java - script 이 므 로 설정 파일 에 통합 할 파일 형식 을 지정 해 야 합 니 다.
                   2. 테스트 를 통 해 concat 는 루트 설정 을 통 해 읽 은 정적 파일 에 만 유효 하 며 proxypass 설정 의 파일 가 져 오 는 방식 이 잘못 되 었 습 니 다.다음 설정 참조:
    location /seajsdemo/resources {
        concat on;
        concat_types text/html application/javascript;
        root /usr/local/tomcat/webapps;
    }

      
  • 동적 자원 과 정적 자원 분리 설정
  •        프로젝트 는 maven 구축 관 리 를 사용 합 니 다. 정적 자원 은 resources 폴 더 에 두 고 기 존의 설정 resources 에서 정적 자원 과 배경 요청 을 분리 하 였 습 니 다. 간단 한 설정 은 다음 과 같 습 니 다.
    worker_processes  2;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
        keepalive_timeout  65;
    
        gzip  on;
    	
    	#cluser
        upstream tomcat_server{
    		server 127.0.0.1:8080;
    		server 127.0.0.1:8081;
        }
    	#server listen
        server {
            listen       80;
            server_name  localhost;
    
            charset utf-8;
    	
    		#proxy static resource , load static resource from file system , 'project_web' is name of project
    		location /project_web/resources {
    			root /usr/local/tomcat-newcenter/webapps;
    		}
    		#dispatch request
    		location / {
    		   proxy_set_header Host $host;
    		   proxy_set_header X-Forwarded-For $remote_addr;
    		   proxy_pass http://tomcat_server;
    		}
    	}
    }
    
  •  nginx 역방향 에이전트 클 러 스 터 에서 배포 요청 방식
  • 1. 폴 링 (기본 값)
    모든 요청 은 시간 순서에 따라 서로 다른 백 엔 드 서버 에 하나씩 배정 되 며, 백 엔 드 서버 다운 이 떨 어 지면 자동 으로 제거 할 수 있 습 니 다.
    2、weight
    폴 링 확률 을 지정 하고 weight 와 방문 비율 이 정비례 하여 백 엔 드 서버 의 성능 이 고 르 지 않 은 경우 에 사용 합 니 다.
    예 를 들 면:
    upstream bakend {
    server 192.168.159.10 weight=10;
    server 192.168.159.11 weight=10;
    }
    3、ip_hash
    모든 요청 은 ip 에 접근 하 는 hash 결과 에 따라 분 배 됩 니 다. 모든 방문객 이 백 엔 드 서버 에 고정 적 으로 접근 하면 session 문 제 를 해결 할 수 있 습 니 다.
    예 를 들 면:
    upstream resinserver{
    ip_hash;
    server 192.168.159.10:8080;
    server 192.168.159.11:8080;
    }
    4. fair (제3자)
    백 엔 드 서버 의 응답 시간 에 따라 요청 을 분배 하고 응답 시간 이 짧 은 우선 분 배 를 합 니 다.
    upstream resinserver{
    server server1;
    server server2;
    fair;
    }
    5、url_hash (제3자)
    url 에 접근 한 hash 결과 에 따라 요청 을 할당 합 니 다. 모든 url 을 같은 백 엔 드 서버 로 지정 하고 백 엔 드 서버 가 캐 시 일 때 유효 합 니 다.
    예: upstream 에 hash 문 구 를 추가 하고 server 문 구 는 weight 등 다른 매개 변 수 를 기록 할 수 없습니다. hashmethod 는 hash 알고리즘 을 사용 합 니 다.
    upstream resinserver{
    server squid1:3128;
    server squid2:3128;
    hash $request_uri;
    hash_method crc32;
    }
    tips:
    upstream resinserver {\ # 부하 균형 장치 의 Ip 및 장치 상 태 를 정의 합 니 다.
    ip_hash;
    server 127.0.0.1:8000 down;
    server 127.0.0.1:8080 weight=2;
    server 127.0.0.1:6801;
    server 127.0.0.1:6802 backup;
    }
    부하 균형 을 사용 해 야 하 는 server 에 추가
    proxy_pass http://resinserver/;
    모든 장치 의 상태 설정:
    1. 다운 은 목록 앞의 server 가 부하 에 잠시 참여 하지 않 음 을 표시 합 니 다.
    2. weight 는 기본적으로 1. weight 가 클 수록 부하 의 가중치 가 커진다.
    3.max_fails: 요청 실패 횟수 를 기본 으로 1. 최대 횟수 를 초과 하면 proxy 로 되 돌려 줍 니 다.next_upstream 모듈 정의 오류
    4.fail_timeout:max_fails 회 실패 후 일시 정지 시간 입 니 다.
    5. backup: 다른 모든 비 backup 기기 다운 이나 바 쁠 때 backup 기 계 를 요청 합 니 다.그래서 이 기계 의 압력 이 가장 가 벼 울 것 이다.
    nginx 는 여러 그룹의 부하 균형 을 동시에 설정 하여 사용 하지 않 는 server 에 사용 할 수 있 도록 지원 합 니 다.
    client_body_in_file_only 는 On 으로 설정 되 어 있 습 니 다. client post 에서 온 데 이 터 를 파일 에 기록 하여 debug 로 사용 할 수 있 습 니 다.
    client_body_temp_path 기록 파일 의 디 렉 터 리 를 최대 3 층 까지 설정 할 수 있 습 니 다.
    location 에서 URL 을 일치 시 킵 니 다. 방향 을 바 꾸 거나 새로운 프 록 시 부하 균형 을 이 룰 수 있 습 니 다.

    좋은 웹페이지 즐겨찾기