Nginx 입문 부터 파악 까지 [(1 절 (총 3 절)] Centos 6.6 버 전
1. Nginx 프로필: (nginx 홈 페이지 위 키 문서 에서 발췌)
NGINX 는 무료 오픈 소스, 고성능 HTTP 서버 및 리 버스 프 록 시 뿐만 아니 라 IMAP / POP 3 프 록 시 서버 입 니 다. NGINX 는 고성능, 안정성 (안정성), 풍부 한 기능 세트, 간단 한 구성 및 낮은 리 소스 소비 (소모) 로 잘 알려 져 있 습 니 다.
NGINX is one of a handful of servers written to address the 전통 적 인 서버 와 는 달리 NGINX doesn 't rely (의존) on threads to handle (스 레 드 처리) requests. instead it uses a much more scalable (확장 가능 한) event - driven (asynchronous, 비동기) architecture. This architecture uses small, but more importantly,수천 개의 동시 요청 을 처리 할 것 으로 예상 되 지 않 더 라 도 NGINX 의 고성능 및 소형 메모리 공간 을 활용 할 수 있 습 니 다. NGINX 스 케 일 (규모) 은 모든 방향 으로 작 습 니 다.
2. Nginx 의 특성.
1) 모듈 화 디자인;
2) 높 은 신뢰성:
master --> worker
3) 저 메모리 소모:
10000 개의 keep - alive 모드 에서 connection 은 2.5MB 의 메모리 만 필요 합 니 다.
4) 열 배치 지원:
멈 추 지 않 고 프로필 을 업데이트 하고 로그 파일 을 스크롤 하 며 프로그램 버 전 을 업그레이드 합 니 다.
3. Nginx 의 기능.
1. 기본 기능: 1) 정적 자원 의 웹 서버, 열 린 파일 설명 자 를 캐 시 할 수 있 습 니 다. 2) http, smpt, pop 3 프로 토 콜 의 역방향 프 록 시 서버; 3) 캐 시 가속, 부하 균형; 4) FastCGI (fpm, LNMP), uWSGI (python) 등 을 지원 합 니 다. 5) 모듈 화 (비 DSO 메커니즘), 필터 zip, SSI 및 이미지 의 대소 문자 조정; 6) SSL 지원: 2. 확장 기능: 1) 이름과 IP 기반 가상 호스트; 2) keepalive 지원; 3) 부 드 러 운 업 그 레이 드 를 지원 합 니 다. 4) 로그 버퍼 를 사용 하여 로그 저장 성능 을 제공 하 는 맞 춤 형 접근 로 그 를 지원 합 니 다. 5) url rewrite 지원; 6) 경로 별명 지원; 7) IP 및 사용자 기반 접근 제한 지원; 8) 속도 제한 을 지원 하고 병발 수 제한 을 지원 한다.
4. Nginx 의 모듈 유형.
1. 핵심 모듈 2. Standard HTTP modules 3. Optional HTTP modules 4. Mail modules 5. 3rd party modules
5. 소스 코드 컴 파일 설치 Nginx.
시스템 환경: CentOS 7.3
nginx 패키지 버 전: 1.10.2 안정 버 전
Nginx 의 설치 방식 은 RPM 설치 와 소스 코드 컴 파일 설치 두 가지 가 있다.여 기 는 컴 파일 설치 방식 을 사용 합 니 다. Linux 시스템 은 CentOS 7.3 입 니 다.
먼저 홈 페이지 에서 Stable version 설치 패 키 지 를 다운로드 합 니 다.
[root@localhost ~]# cat /etc/centos-release
CentOS release 6.6 (Final)
[root@localhost ~]# wget http://nginx.org/download/nginx-1.10.2.tar.gz
설치 시작:
[root@localhost ~]# useradd -s /sbin/nologin -M nginx
// nginx nginx nginx .
[root@localhost ~]# mkdir /data/nginx/logs/ -p
[root@localhost ~]# touch /data/nginx/logs/error.log
[root@localhost ~]# touch /data/nginx/{nginx.pid,nginx.lock}
// .
[root@localhost ~]# yum -y gd gd-devel pcre pcre-devel
[root@localhost ~]# tar zxf nginx-1.10.2.tar.gz
[root@localhost ~]# cd nginx-1.10.2
[root@localhost nginx-1.10.2]# ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE Makefile man objs README src
[root@localhost nginx-1.10.2]#
주:
1) gd 라 이브 러 리 는 phop 처리 그래 픽 의 확장 라 이브 러 리 입 니 다. GD 라 이브 러 리 는 그림 을 처리 하 는 일련의 API 를 제공 합 니 다. GD 라 이브 러 리 를 사용 하여 그림 을 처리 하거나 그림 을 생 성 할 수 있 습 니 다.
2) PCRE (Perl Compatible Regular Expressions) 는 perl 호 환 을 포함 한 정규 표현 식 라 이브 러 리 입 니 다.
컴 파일 설치 옵션 보기:
[root@localhost nginx-1.10.2]# ./configure --help
--help print this message
--prefix=PATH set installation prefix
--sbin-path=PATH set nginx binary pathname
--modules-path=PATH set modules path
--conf-path=PATH set nginx.conf pathname
--error-log-path=PATH set error log pathname
--pid-path=PATH set nginx.pid pathname
--lock-path=PATH set nginx.lock pathname
--user=USER set non-privileged user for
worker processes
--group=GROUP set non-privileged group for
worker processes
--build=NAME set build name
--builddir=DIR set build directory
--with-select_module enable select module
--without-select_module disable select module
--with-poll_module enable poll module
--without-poll_module disable poll module
--with-threads enable thread pool support
--with-file-aio enable file AIO support
--with-ipv6 enable IPv6 support
--with-http_ssl_module enable ngx_http_ssl_module
--with-http_v2_module enable ngx_http_v2_module
--with-http_realip_module enable ngx_http_realip_module
--with-http_addition_module enable ngx_http_addition_module
--with-http_xslt_module enable ngx_http_xslt_module
--with-http_xslt_module=dynamic enable dynamic ngx_http_xslt_module
--with-http_p_w_picpath_filter_module enable ngx_http_p_w_picpath_filter_module
--with-http_p_w_picpath_filter_module=dynamic
......
[root@localhost nginx-1.10.2]#
주: 상기 모듈 을 컴 파일 할 때 선택 적 인 설치 가 필요 합 니 다. 만약 에 어떤 모듈 이 설치 할 때 빠 져 도 걱정 하지 마 세 요. nginx 는 열 배 치 를 지원 하기 때문에 필요 한 모듈 을 수시로 추가 할 수 있 습 니 다!
다음 컴 파일:
[root@nginx nginx-1.10.2]# ./configure \
--prefix=/usr/local/nginx-1.10.2 \
--error-log-path=/data/nginx/logs/error.log \
--pid-path=/data/nginx/nginx.pid \
--lock-path=/data/nginx/nginx.lock \
--user=nginx \
--group=nginx \
--with-threads \
--with-http_ssl_module \
--with-http_p_w_picpath_filter_module \
--with-http_p_w_picpath_filter_module=dynamic \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_slice_module \
--with-stream \
[root@nginx nginx-1.10.2]# make && make install
:
[root@nginx nginx-1.10.2]# cd
[root@nginx ~]# ls /usr/local/nginx-1.10.2/ -d
/usr/local/nginx-1.10.2/
[root@nginx ~]# ln -sv /usr/local/nginx-1.10.2/ /usr/local/nginx
"/usr/local/nginx" -> "/usr/local/nginx-1.10.2/"
[root@nginx ~]#
:
[root@nginx ~]# ./usr/local/nginx/sbin/nginx
[root@nginx ~]# ss -tunlp |egrep "nginx"
tcp LISTEN 0 128 *:80 *:* users:(("nginx",pid=11743,fd=6),("nginx",pid=11742,fd=6))
[root@nginx ~]#
iptables 80
[root@localhost sbin]# iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
[root@localhost sbin]# service iptables reload
iptables: Trying to reload firewall rules: [ OK ]
、nginx .
1. nginx :
# /usr/local/nginx/sbin/nginx -V
2. :
[root@localhost conf]# cat /etc/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: /usr/local/nginx/conf/nginx.conf
# config: /usr/local/nginx/sbin/nginx
# pidfile: /data/nginx/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/conf/nginx.conf"
[ -f /usr/local/nginx ] && . /usr/local/nginx
lockfile=/data/nginx/nginx.lock
make_dirs() {
# make required directories
user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
if [ -z "`grep $user /etc/passwd`" ]; then
useradd -M -s /bin/nologin $user
fi
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
、Nginx .
Nginx :
1、main :
2、event: event
3、http{}: http
:
、Nginx .
1. :
1) user USERNAME [GROUPNAME]
worker ;
:user nginx nginx
: ,GROUPNAME .
2) pid /path/to/PID_FILE
nginx pid .
: pid /data/nginx/nginx.pid
: pid . pid pid , .
pid :
1
2
3
4
5
6
7
8
9
10
11
[root@nginx ~]
# cat /data/nginx/nginx.pid
cat
:
/data/nginx/nginx
.pid:
[root@nginx ~]
# /usr/local/nginx/sbin/nginx
[root@nginx ~]
# cat /data/nginx/nginx.pid
2561
[root@nginx ~]
# ps -aux |egrep "nginx"
root 2529 0.1 0.5 151800 5436 pts
/0
S+ 10:18 0:00 vim
/usr/local/nginx/conf/nginx
.conf
root 2561 0.0 0.1 45376 1112 ? Ss 10:27 0:00 nginx: master process
/usr/local/nginx/sbin/nginx
nginx 2562 0.0 0.1 45824 1884 ? S 10:27 0:00 nginx: worker process
root 2565 0.0 0.0 112664 972 pts
/1
S+ 10:28 0:00
grep
-E --color=auto nginx
[root@nginx ~]
#
3) worker_connections NUM;
모든 워 커 프로 세 스 가 열 수 있 는 최대 파일 핸들 수 를 지정 합 니 다. 기본 파일 열기 최대 수 는 1024 개 입 니 다.
2. 성능 최적화 관련 설정:
1) worker_processes NUM;
nginx 프로 세 스 수 를 지정 합 니 다. cpu 수 에 따라 지정 하 는 것 을 권장 합 니 다. 일반적으로 2 개의 4 핵 cpu 는 8 입 니 다.
예: workerprocesses 4;
2) worker_cpu_affinity cpumask ...; 프로 세 스 마다 CPU 를 할당 하여 캐 시 명중률 을 높 일 것 을 지정 합 니 다.
예: worker_cpu_affinity 00000001 00000010 00000100 00001000;
상례 에서 4 개의 프로 세 스 를 4 개의 cpu 에 분배 하 였 습 니 다. 주의 와 workerprocess 수 는 대응 합 니 다. 물론 여러 개 를 쓰 거나 하나의 프로 세 스 를 여러 cpu 에 할당 할 수 있 습 니 다.
3) timer_resolution TIME;
타이머 해상도 지정: 이 값 을 낮 추 면 gettimeofday () 시스템 호출 횟수 를 줄 일 수 있 습 니 다.
기본 값: none 예: timerresolution 100ms;
이 설정 명령 은 사용자 가 gettimeofday () 를 호출 하 는 횟수 를 줄 일 수 있 도록 합 니 다.기본 적 인 상황 에서 이 함 수 는 매번 I / O 포트 감청 (예 를 들 어 epoll wait) 이 돌아 오 면 호출 되 고 timer 를 통 해 호출 됩 니 다.resolution 설정 옵션 은 gettimeofday () 함수 호출 간격 을 직접 지정 할 수 있 습 니 다.
4) worker_priority NUM:
워 커 프로 세 스 의 nice 값, 즉 워 커 프로 세 스 의 우선 순 위 를 가리 키 기;
nice 값 이 작 을 수록 우선 순위 가 높 을 수록 기본 값 은 관리자 가 nice 값 을 조정 할 수 있 는 권한 이 있 습 니 다.
3. 이벤트 관련 설정:
1) accept_mutex {off|on}; master 프로 세 스 를 지정 하여 사용자 가 각 worker 프로 세 스 에 요청 할 때 사용 할 부하 균형 잠 금 을 지정 합 니 다.on. 여러 워 커 가 돌아 가면 서 새로운 요청 에 응 할 수 있 음 을 표시 합 니 다. 2) lock_file file; accept_mutex 에서 사용 하 는 잠 금 파일 경로; 3) use [epoll|rtsig|select|poll]; 사용 한 시간 모형 가리 키 기;nginx 가 스스로 선택 하도록 권장 합 니 다. 4) worker_connections #; 단일 워 커 프로 세 스 가 처리 할 수 있 는 최대 병렬 연결 수 를 설정 합 니 다. 계산 공식: workerconnections * work_processes, 이 값 보다 작 을 수 있 습 니 다.
4. 사용 자 는 디 버 깅, 포 지 셔 닝 문제 에 사 용 됩 니 다. 1) daemon {on|off}; nginx: 디 버 깅 을 데 몬 으로 실행 할 지 여부 입 니 다. 2) master_process {on|off}; master / worker 모델 로 nginx 를 실행 할 지 여부;디 버 깅 시 off 로 설정 할 수 있 습 니 다. 3) error_log file |stderr | syslog:server=address[,parameter=value] | memory:size [debug | info | notice | warn | error | crit | alert | emerg]; 문법: errorlog [위치] [레벨]; debug 단 계 를 사용 하려 면 nginx 를 컴 파일 할 때 -- with - debug 옵션 을 사용 해 야 합 니 다.
5. 정리: 항상 조정 해 야 할 매개 변수: worker_processes,worker_connections,worker_cpu_affinity,worker_priority.
--- 1 부 완성!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.