Nginx 의 이 사소한 일

본 고 는 Nginx 입문 급 소개 로 설치, 기본 사용, 부하 균형, 동정 분리, 역방향 에이전트, 캐 시 응용 등 기능 을 포함한다.
의존 항 준비
사용 가능 한 의존 라 이브 러 리, 아래 공식 사이트 링크 를 제공 하면 스스로 다운로드 할 수 있 습 니 다.
pcre
http://www.pcre.org/
zlib
http://zlib.net
http://sourceforge.net/projects/libpng/files/zlib/
zlib. net 이 올 라 갈 수 없습니다. 벽 에 걸 렸 는 지 다른 링크 를 사용 할 수 있 습 니 다. zlib 는 libpng 의존 라 이브 러 리 입 니 다.
 
openssl
http://www.openssl.org/
주: 상기 몇 개의 라 이브 러 리 는 설치 하지 않 고 압축 을 풀 면 됩 니 다. 컴 파일 할 때 연 결 됩 니 다.어떤 시스템 은 이미 설 치 된 것 을 무시 할 수 있다.
 
본문 에 사 용 된 플러그 인 모듈:
https://github.com/agentzh/srcache-nginx-module
https://github.com/agentzh/memc-nginx-modules
 
 
설치 하 다.
nginx 는 windows 를 지원 한 지 오래 되 었 지만 본 고 는 Liux 의 설치 만 소개 합 니 다. 
nginx 공식 사이트 에서 원본 패키지 다운로드 (http://www.nginx.org/ ) 그리고 스트레스 를 푼다.
본 고 를 발표 할 때 최신 판 1.3.0 이 방금 발표 되 었 으 니 1.2.0 을 사용 하 는 것 을 권장 합 니 다.개원 한 동 동 은 항상 한 무더기 의 버 전이 있다. 국내의 해적판 사고 에 따 르 면 많은 사람들 이 최신 판 을 즐겨 사용한다. 사실은 최신 판 은 불안정 하고 각종 영문 도 모 르 는 BUG 가 있 으 며 심지어 어떤 것 은 번역 해서 통과 할 수 없다.그래서 보통 최신 버 전의 이전 버 전의 안정 판 을 사용 하 는 것 을 추천 합 니 다.
 
실행. / configure

  
  
  
  
  1. ./configure --with-pcre=/usr/local/pcre-8.30/ --with-zlib=/usr/local /zlib-1.2.3/ --with-openssl=/usr/local /openssl-1.0.1c/ --prefix=/usr/local/nginx --add-module=/usr/local/agentzh-memc-nginx-module --add-module=/usr/local/agentzh-srcache-nginx-module  

매개 변수 소개:
--with-pcre=/usr/local/pcre-8.30/
pcre 압축 해제 경로 나 설 치 된 경 로 를 가리 키 기 
--with-zlib=/usr/local /zlib-1.2.3/
zlib 압축 해제 경로 나 설 치 된 경 로 를 가리 키 기 
--with-openssl=/usr/local /openssl-1.0.1c/
openssl 압축 해제 경로 나 설 치 된 경 로 를 가리 킵 니 다.
--prefix=/usr/local/nginx
nginx 가 설치 할 경 로 를 지정 합 니 다.
--add-module=/usr/local/agentzh-memc-nginx-module
--add-module=/usr/local/agentzh-srcache-nginx-module
위의 두 모듈 은 주로 memcached 를 호출 하 는 데 사 용 됩 니 다. 자세 한 내용 은 캐 시 섹 션 을 참조 하 십시오.
 
컴 파일 및 설치

  
  
  
  
  1. make&&make install 

테스트
  설치 에 성공 하면 설치 후의 nginx 경로 에서 실 행 됩 니 다.

  
  
  
  
  1. sbin/nginx -v 

  실행 후 nginx 버 전 정 보 를 표시 하면 설치 가 완료 되 었 음 을 표시 합 니 다.
기본 사용
매개 변수
- 현재 nginx 버 전 번호 와 컴 파일 정 보 를 표시 합 니 다.
- v 현재 nginx 버 전 번호 만 표시
- t 설정 파일 의 정확성 테스트
- c < 파일 경로 설정 > 시스템 conf / nginx. conf 를 사용 하지 않 고 사용자 가 지정 한 프로필 경 로 를 사용 합 니 다.
예:

  
  
  
  
  1. sbin/nginx -V  

이상 명령 의 실행 결 과 는 '컴 파일 정보' 를 표시 하 는 것 입 니 다. 사용 하 는 자체 테이프 모듈 과 제3자 모듈 을 볼 수 있 습 니 다. 지금까지 nginx 는 풍부 한 제3자 모듈 이 있 습 니 다.

  
  
  
  
  1. sbin/nginx -t  -c  myconfig.conf  


이상 명령 의 역할 은 사용자 가 지정 한 프로필 my config. conf 의 정확성 을 테스트 하 는 것 입 니 다.
 
 
신호 제어
TERM   강퇴
QUIT   현재 요청 처리 완료 후 프로그램 닫 기
HUP    프로필 을 다시 불 러 옵 니 다. 프로필 을 수정 한 후 사용 합 니 다.이 작업 은 새 작업 프로 세 스 를 열 고 오래된 것 을 닫 습 니 다.        작업 프로 세 스, 현재 요청 을 중단 하지 않 습 니 다.
logsginx. pid 에 현재 실행 중인 nginx 프로 세 스 ID 를 기록 하 였 으 며, kill - 신호 명 'cat logs / nginx. pid' 를 통 해 제어 할 수 있 습 니 다.
예 를 들 면:

  
  
  
  
  1. kill -HUP `cat logs/nginx.pid` 

이상 명령 을 실행 하면 프로필 을 다시 불 러 올 수 있 습 니 다.
 
감시 하 다
설정:

  
  
  
  
  1. location ~ ^/mystatus/ { 
  2.     stub_status on
  3.     access_log off

http: / < xxx > / my status / 에 직접 접근 하면 Nginx 의 운행 상태 정 보 를 표시 할 수 있 습 니 다.
 
부하 균형
설정:

  
  
  
  
  1. #netty server  
  2. upstream nettysrv { 
  3.     server 127.0.0.1:51074 weight=1 max_fails=2 fail_timeout=10s; 
  4.     server 127.0.0.1:14174 weight=1 max_fails=2 fail_timeout=10s; 
  5.     server 127.0.0.1:17917 backup; 

매개 변수 설명:
weight 가중치, 수치 가 클 수록 부하 가 커진다.
백업 백업 표식
이상 은 세 개의 서버 를 부하 균형 으로 설정 하고 51074 와 14174 를 가중치 모드 로 실행 합 니 다.17917 은 백업 서비스 로 서 앞의 두 서비스 가 모두 실 패 했 을 때 만 사용 할 수 있 습 니 다.
동정 분리 및 역방향 대리
정적 접근 설정:

  
  
  
  
  1. #  
  2. location ^~ /static/ { 
  3.     root /home/nginx/webroot/; 

루트 를 사용 하여 링크 를 로 컬 경로 / home / nginx / webroot 로 지정 합 니 다.
동적 접근 설정:

  
  
  
  
  1. # netty serv 
  2. location ^~ /dynamic/ { 
  3.     proxy_pass http://nettysrv/; 
  4.     proxy_set_header Host  $host; 
  5.     proxy_set_header X-Forwarded-For  $remote_addr; 

proxy 사용pass, 앞 에 부하 균형 장 정의 서비스 nettysrv 로 지정 합 니 다.
proxy_set_header
백 엔 드 웹 서버 에 도 여러 개의 가상 호스트 가 설정 되 어 있 을 때 이 Header 로 프 록 시 이름 을 반대로 구분 해 야 합 니 다.
proxy_set_header
백 엔 드 웹 서버 의 프로그램 이 사용자 IP 를 가 져 올 필요 가 있다 면 이 헤더 에서 가 져 오 십시오.
주: location 는 정규 표현 식 으로 uri 를 일치 시 킬 수 있 습 니 다.단, 정규 표현 식 을 사용 하면 rewrite 로 uri 를 재 설정 할 수 있 을 뿐 루트 와 proxy 를 사용 할 수 없습니다.pass。
캐 시
자체 캐 시 사용 proxycache
http 아래 설정:

  
  
  
  
  1. proxy_temp_path proxy_temp_dir; 
  2. #  2000m  1 , 5m 
  3. proxy_cache_path proxy_cache_dir levels=1:2 keys_zone=cache_one:2000m  inactive=5m max_size=5m; 

위치 에서 캐 시 호출 설정:

  
  
  
  
  1. location ^~/proxytest/ { 
  2.     proxy_cache cache_one; 
  3.     proxy_cache_valid any 5m; 
  4.     proxy_pass http://nettysrv/; 

플러그 인 을 사용 하여 memcached 를 호출 합 니 다.
memcached 를 사용 하려 면 앞에서 언급 한 제3자 플러그 인 을 사용 해 야 합 니 다.
agentzh-memc-nginx-module
agentzh-srcache-nginx-module
 
플러그 인의 설치, nginx 컴 파일 시 - add - module 인 자 를 추가 하면 됩 니 다.

  
  
  
  
  1. --add-module=/usr/local/agentzh-memc-nginx-module --add-module=/usr/local/agentzh-srcache-nginx-module  

구체 적 으로 nginx 의 설치 장 을 참고 할 수 있 습 니 다.
설정 은 다음 과 같 습 니 다:

  
  
  
  
  1. #memcached  
  2. upstream memcachesrv { 
  3.     server 127.0.0.1:11211; 
  4.  
  5. # memcached location 
  6. location ^~/memcachetest { 
  7.     set $key $uri$args; 
  8.     #set_md5 $key
  9.     srcache_fetch GET /mcache $key
  10.     srcache_store PUT /mcache $key
  11.     #more_clear_headers 'Accept-Encoding'
  12.     proxy_pass http://nettysrv/; 
  13.  
  14. # srcache location , , , 。 
  15. location /mcache { 
  16.     internal; 
  17.     memc_connect_timeout 1000ms; 
  18.     memc_send_timeout 1000ms; 
  19.     memc_read_timeout 1000ms; 
  20.     set $memc_key $query_string; 
  21.     set $memc_exptime 300; 
  22.     memc_pass memcachesrv; 

^ ~ / memcachetest 설정 에서 $uri $args 를 / mcache 에 전송 하고 mcache 용 $querystring 에서 memcache 로 서 key 를 꺼 냅 니 다.
 
레 퍼 런 스
http://www.nginx.org/
http://wiki.nginx.org/Main

좋은 웹페이지 즐겨찾기