nginx 기초 및 컴 파일 설치

nginx 는 http 서버 와 역방향 프 록 시 서버 이 며 IMAP / POP 3 / SMTP 입 니 다. 프 록 시 서버
nginx 특성:
    기본 기능:
        1. 정적 파일, 즉 정적 자원 의 웹 서버 에서 열 린 파일 설명 자 를 자동 으로 캐 시 할 수 있 습 니 다.
        2. 역방향 프 록 시 서버 로 간단 한 부하 균형 과 중복 을 실현 할 수 있 습 니 다.
        3. FastCGI 프로 토 콜 을 지원 할 수 있 습 니 다.
        4. 모듈 화 된 말 기능 이 있 지만 DSO (동적 장치 마 운 트 해제) 메커니즘 이 아 닌 다양한 필터 gzip, SSI 와 이미지 크기 조정 완료 등 을 지원 합 니 다.
        5. SSL 기능 지원
    확장 기능:
        1. 이름과 IP 를 기반 으로 가상 호스트 를 만 들 수 있 습 니 다.
        2 、 keepalive 지원
        3. 부 드 러 운 설정 업데이트 또는 프로그램 버 전 업그레이드 지원
        4. 맞 춤 형 접근 로 그 를 지원 하고 로그 캐 시 를 사용 하여 성능 을 향상 시 킬 수 있 습 니 다.
        5. url rewrite 지원 (주소 재 작성)   
        6. 지원 경로 별명
        7. IP 기반 및 사용자 인증 지원
        8. 속도 제한 지원, 병발 제한 등
nginx 의 기본 구조:
    하나의 master 에서 하나 이상 의 worker 결합 작업 을 만 들 고 하나의 worker 가 여러 사용자 의 요청 에 응답 합 니 다.이벤트 구동 을 기반 으로 kqueue, epoll, / dev / poll (이벤트 구동 이 아 닌 메시지 알림 은 select, poll, rt singals) 이 있 습 니 다.sendfile 지원;AIO 메커니즘 지원 (비동기 IO);지원 mmap
특성 요약: nginx 는 비 차단, 이벤트 구동 이 있 습 니 다. 하나의 master 는 여러 개의 worker 를 생 성하 고 하나의 worker 는 여러 사용자 의 요청 에 응답 하 는 특성 이 있 습 니 다.master 프로 세 스 는 부 드 러 운 업그레이드 에 많이 사 용 됩 니 다.
nginx 모듈 종류:
            핵심 모듈
            표준 http 모듈
            선택 가능 한 http 모듈
            메 일 모듈
            제3자 확장 모듈
nginx 의 사용:
    설치 방법:
        컴 파일 설치
        rpm 설치: yum (epel 원본 중)
    설치 환경:
       # yum install Development Tools  Server Platform Developmengt
       # yum install pcre-devel

    nginx 설정 파일:
            주 설정 세그먼트
             http 설정 세그먼트
                   http  {
                
                    }
        주: 설정 매개 변 수 는 분점 으로 끝내 야 합 니 다. 그렇지 않 으 면 문법 오류 로 여 겨 집 니 다. \ # 설명 정 보 를 표시 합 니 다. 문법 형식 설정: 매개 변수 이름 설정 값 1 [값 2...]
        설정 파일 에서 사용 변 수 를 지원 합 니 다: 모듈 내 장 된 변수 와 사용자 정의 변수 가 있 습 니 다 (ser var name value)
    nginx 기본 핵심 설정 의 분류:
        디 버 깅, 포 지 셔 닝 문제, 정상 적 인 운행 에 필요 한 설정, 성능 최적화 설정, 성능 최적화 설정, 이벤트 류 설정
    nginx 에서 worker 프로 세 스 를 실행 하 는 것 은 일반 사용자 로 실 행 됩 니 다. nginx 사용자 와 nginx 그룹 입 니 다.
사용 예시:
컴 파일 설치 예제:
# get nginx-1.4.7.tar.gz  \\     
# tar xf nginx-1.4.7.tar.gz   \\     
# ./configure \
  
  --prefix=/usr/local/nginx \
  --error-log-path=/data/applogs/nginx/error.log \
  --http-log-path=/data/applogs/nginx/access.log \
  --pid-path=/var/run/nginx/nginx.pid \
  --lock-path=/var/lock/nginx.lock \
  --user=nginx \
  --group=nginx \
  --with-http_ssl_module \
  --with-http_flv_module \
  --with-http_stub_status_module \
  --with-http_gzip_static_module \           
  --http-client-body-temp-path=/usr/local/nginx/client/  
  --http-proxy-temp-path=/usr/local/nginx/proxy/ \       
  --http-fastcgi-temp-path=/usr/local/nginx/fcgi/ \
  --http-uwsgi-temp-path=/usr/local/nginx/uwsgi \
  --http-scgi-temp-path=/usr/local/nginx/scgi \
  --with-pcre
# make && make install
# groupadd -r nginx
   \\   
# useradd -r -g nginx nginx    \\    
# mkdir /var/tmp/nginx \\           
nginx     :/usr/sbin/nginx
nginx     ,  /usr/sbin/nginx -h   ;
        -t:          
# vim /etc/rc.d/init.d/nginx  \\          
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /etc/sysconfig/nginx
# pidfile: /var/run/nginx.pid
 
# Source function library.
. /etc/rc.d/init.d/functions
 
# Source networking configuration.
. /etc/sysconfig/network
 
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
 
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
 
NGINX_CONF_FILE="/usr/local/nginx/nginx.conf"
 
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
 
lockfile=/var/lock/subsys/nginx
 
make_dirs() {
   # make required directories
   user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   options=`$nginx -V 2>&1 | grep 'configure arguments:'`
   for opt in $options; do
       if [ `echo $opt | grep '.*-temp-path'` ]; then
           value=`echo $opt | cut -d "=" -f 2`
           if [ ! -d "$value" ]; then
               # echo "creating" $value
               mkdir -p $value && chown -R $user $value
           fi
       fi
   done
}
 
start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    make_dirs
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}
 
stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}
 
restart() {
    configtest || return $?
    stop
    sleep 1
    start
}
 
reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}
 
force_reload() {
    restart
}
 
configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}
 
rh_status() {
    status $prog
}
 
rh_status_q() {
    rh_status >/dev/null 2>&1
}
 
case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac
# chmod +x /etc/rc.d/init.d/nginx  \\      ,          
#  mkdir .vim/syntax -pv     \\                 ,           ,      ,       nginx            
# cd .vim/syntax
#get nginx.vim     \\    nginx.vim    
#vim filetype.vim     \\    filetype   
au BufRead,BufNewFile /etc/nginx/*,/usr/local/nginx/conf/* if &ft == ' ' |        setfiletype nginx | endif   \\ filetype        
# cd /etc/nginx
# vim nginx.conf     \\               ,          ;

정상적으로 실행 되 는 필수 설정:
user nginx;
     \\    worker       ,  :user username [groupname]
pid /path/to/pidfile_name;     \\  nginx pid  
worker_rlimit_nofile # ;    \\      worker               
worker_rlimit_sigpending #;     \\            worker       

성능 관련 설정 최적화:
worker_processes #;      \\  worker     ,         CPU       1;            
worker_cpu_affinity cpumask....;    \\  cpu  ;cpu          cpu           0,  :         0000,     1 cpu    0001   ,     2  ,   0010  ;     3  ,   0100  ;            
ssl_engine device;\\    ssl          ,      ssl      ;
timer_resolution t;     \\           ,    gettimeofday()   nginx    ;t     ,          ;timer_resolution           gettimeofday()        ; x86-64   ,gettimeofday()      ,       ;                
worker priority nice;    \\   ,nice  -20 19    ;            

이벤트 관련 설정:
accept_mutex [on|off];    \\      nginx     ;      worker   ;       worker     、              ;      worker           7/8 ,master             worker ;       
lock_file /path/to/lock_file;    \\         ;
accept_mutex_delay #ms;    \\  accept    ,  worker     accept      ;    worker              ,     #ms        ;   500  (ms)
multi_accept on|off;    \\                ;   off
use [epoll|rtsig|select|poll];    \\         ,   nginx    ,   epoll
worker_connections #;    \\  worker           ;

디 버 깅, 포 지 셔 닝 문제: nginx 만 디 버 깅 할 때 사용
daemon [on|off];    \\   nginx    ,   on,       off,             
master_process on|off;    \\   master/worker    nginx,   on,       off     
error_log /path/to/error_log level;    \\          ,   error  ;       debug  ,           --with-debug  debug  ;

nginx 홈 페이지 에서http://nginx.org더 자세 한 프로필 설명 이 있 습 니 다.

좋은 웹페이지 즐겨찾기