1. 설치
1.10.1 설치 파일은 https://nginx.org/download/nginx-1.10.1.tar.gz 입니다.
1.1. configure
# ./configure --prefix=/app/nginx-1.10.1 checking for OS + Linux 2.6.32-279.el6.x86_64 x86_64 checking for C compiler ... found + using GNU C compiler + gcc version: 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) checking for gcc -pipe switch ... found checking for -Wl,-E switch ... found checking for gcc builtin atomic operations ... found checking for C99 variadic macros ... found checking for gcc variadic macros ... found checking for gcc builtin 64 bit byteswap ... found checking for unistd.h ... found checking for inttypes.h ... found checking for limits.h ... found checking for sys/filio.h ... not found checking for sys/param.h ... found checking for sys/mount.h ... found checking for sys/statvfs.h ... found checking for crypt.h ... found Configuration summary + using system PCRE library + OpenSSL library is not used + md5: using system crypto library + sha1: using system crypto library + using system zlib library nginx path prefix: "/app/nginx-1.10.1" nginx binary file: "/app/nginx-1.10.1/sbin/nginx" nginx modules path: "/app/nginx-1.10.1/modules" nginx configuration prefix: "/app/nginx-1.10.1/conf" nginx configuration file: "/app/nginx-1.10.1/conf/nginx.conf" nginx pid file: "/app/nginx-1.10.1/logs/nginx.pid" nginx error log file: "/app/nginx-1.10.1/logs/error.log" nginx http access log file: "/app/nginx-1.10.1/logs/access.log" nginx http client request body temporary files: "client_body_temp" nginx http proxy temporary files: "proxy_temp" nginx http fastcgi temporary files: "fastcgi_temp" nginx http uwsgi temporary files: "uwsgi_temp" nginx http scgi temporary files: "scgi_temp"
1.2. make
# make make -f objs/Makefile make[1]: Entering directory `/Downloads/nginx/nginx-1.10.1' cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \ -o objs/src/core/nginx.o \ src/core/nginx.c cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \ -o objs/src/core/ngx_log.o \ src/core/ngx_log.c sed -e "s|%%PREFIX%%|/app/nginx-1.10.1|" \ -e "s|%%PID_PATH%%|/app/nginx-1.10.1/logs/nginx.pid|" \ -e "s|%%CONF_PATH%%|/app/nginx-1.10.1/conf/nginx.conf|" \ -e "s|%%ERROR_LOG_PATH%%|/app/nginx-1.10.1/logs/error.log|" \ < man/nginx.8 > objs/nginx.8 make[1]: Leaving directory `/Downloads/nginx/nginx-1.10.1'
1.3. make install
# make install make -f objs/Makefile install make[1]: Entering directory `/Downloads/nginx/nginx-1.10.1' test -d '/app/nginx-1.10.1' || mkdir -p '/app/nginx-1.10.1' test -d '/app/nginx-1.10.1/sbin' \ || mkdir -p '/app/nginx-1.10.1/sbin' test ! -f '/app/nginx-1.10.1/sbin/nginx' \ || mv '/app/nginx-1.10.1/sbin/nginx' \ '/app/nginx-1.10.1/sbin/nginx.old' make[1]: Leaving directory `/Downloads/nginx/nginx-1.10.1'
1.4. 기동
다음과 같은 프로세스가 실행됩니다.
# ps -ef | grep nginx root 29872 1 0 08:58 ? 00:00:00 nginx: master process ./nginx nobody 29873 29872 0 08:58 ? 00:00:00 nginx: worker process root 29875 19769 0 08:58 pts/0 00:00:00 grep nginx
2. nginx_status 설정을 추가
location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; }
기동 결과입니다.
nginx: [emerg] unknown directive "stub_status" in /app/nginx-1.10.1/conf/nginx.conf:49
이유는...
configure 시에 "--with-http_stub_status_module" 옵션이 빠졌기 때문입니다.
처음에 아래와 같이 configure 후에 컴파일하면 잘 됩니다.
./configure --prefix=/app/nginx-1.10.1 --with-http_stub_status_module
자, 이제 nginx_status 화면 결과를 볼까요?
# curl http://127.0.0.1:80/nginx_status Active connections: 1 server accepts handled requests 28644 28644 32733 Reading: 0 Writing: 1 Waiting: 0
총 7가지 항목에 대한 결과값을 확인할 수 있습니다. 차례대로 설명드리면..
- Active Connections
- total accepted connections
- total handled connections (보통 2번과 동일합니다)
- number of and handles requests
- Reading : nginx reads request header
- Writing : nginx reads request body, processes request, or writes response to a client
- Waiting : keep-alive connections, actually it is active