nginx 기초 및 컴 파일 설치
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더 자세 한 프로필 설명 이 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
nginx 컴 파일 설치 centos 7nginx 컴 파일 설치 설정 테스트: pc 웹 사이트 새로 만 들 기 모 바 일 웹 사이트 새로 만 들 기: 루트 와 alias...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.