Nginx 서버 구축 역방향 프 록 시 전 공략

6297 단어
Nginx 역방향 대 리 는 우리 가 해결 해 야 할 문제 가 적지 않다. 그 중에서 많은 문 제 는 설치 상의 문 제 를 바탕 으로 하 는 것 이 고 설치 가 완 료 된 후에 관련 디 버 깅 도 많은 사람들 을 골 치 아 프 게 한다.설치 와 디 버 깅 에 관 한 소개 가 있 습 니 다.
서버 apache 가 현재 의 병발 을 견 디 지 못 하기 때문에 전단 squid 설정 을 사용 한 후에 도 문 제 는 해결 되 지 않 습 니 다. 페이지 프로그램 은 대부분 동적 입 니 다. fastcgi 로 처리 할 수 없습니다. 따라서 Nginx 역방향 프 록 시 apache 를 사용 하려 고 합 니 다. 전체 설정 설치 과정 은 간단 합 니 다. 높 은 병발 을 고려 한 상황 에서설치 하기 전에 최 적 화 를 했 습 니 다. 현재 설정 은 3000 이상 의 병발 을 견 딜 수 있 습 니 다. 그리 크 지 않 은 것 같은 데 요?허 ~ ~ 하지만 충분 합 니 다 ~ ~ 아직 499 문제 가 소량 남아 있 습 니 다. 저 와 토론 하여 해결 해 주 실 것 을 기대 합 니 다.
제1 부분: 설치
1. 사용자 및 그룹 만 들 기

  /usr/sbin/groupadd www 
  /usr/sbin/useradd -g www www 


2 pcre 를 설치 하여 Nginx 역방향 에이전트 가 rewrite 를 편리 하 게 지원 하도록 합 니 다.

  wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.8.tar.gz 
  tar zxvf pcre-7.8.tar.gz 
  cd pcre-7.8/ 
  ./configure 
  make && make install 


3. Nginx 역방향 에이전트 설치

  wget http://sysoev.ru/nginx/nginx-0.7.58.tar.gz 
  tar zxvf nginx-0.7.58.tar.gz 
  cd nginx-0.7.58/ 
  ./configure --user=www --group=www --prefix=/usr/
  local/webserver/nginx --with-http_stub_status_module 
  --with-http_ssl_module --with-cc-opt='-O2' --with-cpu-opt
  =opteron 
  make && make install 


위의 -- with - cc - opt = '- O2' -- with - cpu - opt = opteron 을 주의 하 십시오. 이것 은 컴 파일 러 최적화 입 니 다. 현재 가장 많이 사용 되 는 것 은 3 이 아 닌 - 02 입 니 다. 뒤에 대응 하 는 CPU 모델 입 니 다.
제2 부분: 설정 및 최적화 프로필
1 Nginx. conf 프로필:

  user www www; 
  worker_processes 4; 
  # [ debug | info | notice | warn | error | crit ] 
  error_log /usr/local/webserver/nginx/logs/nginx_error.log crit; 
  pid /usr/local/webserver/nginx/nginx.pid; 
  #Specifies the value for maximum file descriptors that 
  can be opened by this process. 
  worker_rlimit_nofile 51200; 
  events 
  { 
  use epoll; 
  worker_connections 51200; 
  } 
  http 
  { 
  include mime.types; 
  default_type application/octet-stream; 
  source_charset GB2312; 
  server_names_hash_bucket_size 256; 
  client_header_buffer_size 256k; 
  large_client_header_buffers 4 256k; 
  #size limits 
  client_max_body_size 50m; 
  client_body_buffer_size 256k; 
  client_header_timeout 3m; 
  client_body_timeout 3m; 
  send_timeout 3m; 
  #       .               502 499    
  sendfile on; 
  tcp_nopush on; 
  keepalive_timeout 120; #    ,       502   
  tcp_nodelay on; 
  include vhosts/upstream.conf; 
  include vhosts/bbs.linuxtone.conf;  
  } 


2 upstream. conf 프로필 (이것 도 부하 설정 방법 입 니 다.

  upstream.conf 
  upstream bbs.linuxtone.com { 
  server 192.168.1.4:8099; 
  } 


3. 사이트 프로필

  bbs.linuxtone.conf 
  server 
  { 
  listen 80; 
  server_name bbs.linuxtone.conf; 
  charset GB2312; 
  index index.html index.htm; 
  root /date/wwwroot/linuxtone/; 
  location ~ ^/NginxStatus/ { 
  stub_status on; 
  access_log off; 
  } 
  location / { 
  root /date/wwwroot/linuxtone/; 
  proxy_redirect off ; 
  proxy_set_header Host $host; 
  proxy_set_header X-Real-IP $remote_addr; 
  proxy_set_header REMOTE-HOST $remote_addr; 
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
  client_max_body_size 50m; 
  client_body_buffer_size 256k; 
  proxy_connect_timeout 30; 
  proxy_send_timeout 30; 
  proxy_read_timeout 60; 
  proxy_buffer_size 256k; 
  proxy_buffers 4 256k; 
  proxy_busy_buffers_size 256k; 
  proxy_temp_file_write_size 256k; 
  proxy_next_upstream error timeout invalid_header http_500 
  http_503 http_404; 
  proxy_max_temp_file_size 128m; 
  proxy_pass http://bbs.linuxtone.com; 
  } 


매개 변 수 는 모두 조정 되 었 습 니 다. 목적 은 대리 과정 에서 발생 한 502 499 오 류 를 해결 하 는 것 입 니 다.

  #Add expires header for static content 
  location ~* \.(jpg|jpeg|gif|png|swf)$ { 
  if (-f $request_filename) { 
  root /date/wwwroot/linuxtone/; 
  expires 1d; 
  break; 
  } 
  } 
  log_format access '$remote_addr - $remote_user [$time_local] "$request" ' 
  '$status $body_bytes_sent "$http_referer" ' 
  '"$http_user_agent" $http_x_forwarded_for'; 
  access_log /exp/nginxlogs/bbs.linuxtone_access.log access; 
  } 


상용 명령 아래 Nginx 의 역방향 에이전트 상용 명령 을 살 펴 보 겠 습 니 다.
proxy pass 명령 어 문법

  proxy_pass  [url | upstream] 


이 명령 은 프 록 시 포트 나 소켓, URL 을 설정 하 는 데 사 용 됩 니 다.
proxy redirect 명령 어 문법

  proxy_redirect  [off | default | redirect replacement] 


이 명령 은 프 록 시 서버 의 응답 헤더 의 "location" 과 "refresh" 를 변경 하 는 데 사 용 됩 니 다. 이 명령 의 역할 은 아직 파악 하지 못 했 습 니 다. 실제 설정 은 모두 off 입 니 다. 여러분 이 알 고 계 신다 면 블 로그 에서 댓 글 을 달 아 저 를 지도 해 주 십시오.
proxy next upstream 명령 어 문법
 

    proxy_next_upstream [error|timeout|invalid_header|http_500|http_502|http_503|http_504|http_404|off] 
  

이 명령 은 어떤 상황 에서 다음 서버 로 전송 을 요청 하 는 지 설정 하 는 데 사 용 됩 니 다. upstream 부하 균형 프 록 시 서버 풀 에 서 는 백 엔 드 서버 가 지정 한 오류 응답 코드 에 접근 하거나 되 돌 릴 수 없다 고 가정 할 때 이 명령 을 사용 하여 풀 에 있 는 다음 서버 로 전송 을 요청 할 수 있 습 니 다. 매개 변 수 는 설명 합 니 다.
    error: 서버 에 연결 할 때 요청 을 보 낼 때 응답 메 시 지 를 읽 는 중 오류 가 발생 했 습 니 다.      timeout: 서버 에 연결 할 때 요청 을 전달 할 때 백 엔 드 서버 응답 메 시 지 를 읽 을 때 시간 이 초과 되 었 습 니 다.      invalid header: 백 엔 드 서버 가 비어 있 거나 잘못된 응답 을 되 돌려 줍 니 다.      http [500 | 502 | 503 | 504 | 404]: 백 엔 드 서버 가 지정 한 응답 상태 코드 를 되 돌려 줍 니 다.      off: 다음 백 엔 드 서버 로 전송 요청 금지 
proxy set header 명령 어 문법

  proxy_set_header header value 


이 명령 은 프 록 시 서버 에 전송 되 는 요청 정보 에 헤더 줄 을 다시 정의 하거나 추가 할 수 있 습 니 다. 값 은 텍스트 일 수도 있 고 변수 일 수도 있 으 며 텍스트 와 변수의 조합 일 수도 있 습 니 다.

좋은 웹페이지 즐겨찾기