1,编译安装nginx
wget http://nginx.org/download/nginx-1.9.15.tar.gz
yum -y install pcre-devel pcre openssl openssl-devel
groupadd -r nginx
useradd -g nginx -r nginx
tar xf http://nginx.org/download/nginx-1.9.15.tar.gz
ln -sv nginx-1.9.15 nginx
cd nginx
./configure
--prefix=/usr/local/nginx
--conf-path=/etc/nginx/nginx.conf
--user=nginx --group=nginx
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
--pid-path=/var/run/nginx/nginx.pid
--lock-path=/var/lock/nginx.lock
--with-http_ssl_module
--with-http_stub_status_module
--with-http_gzip_static_module
--with-http_flv_module
--with-http_mp4_module
--http-client-body-temp-path=/var/tmp/nginx/client
--http-proxy-temp-path=/var/tmp/nginx/proxy
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi
make && make install
mkdir -pv /var/tmp/nginx/{client,fastcgi,proxy,uwsgi}
配置文件:
[root@mysql-master nginx]# cat /etc/nginx/nginx.conf
user nginx;
worker_processes 1;
worker_rlimit_nofile 51200;
error_log /usr/local/nginx/logs/nginx_error.log crit;
pid /usr/local/nginx/logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
sendfile on;
server_names_hash_bucket_size 3526;
server_names_hash_max_size 4096;
log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
'$host "$request_uri" $status'
'"$http_referer" "$http_user_agent"';
tcp_nopush on;
keepalive_timeout 30;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
client_header_buffer_size 1k;
large_client_header_buffers 8 4k;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;
client_max_body_size 10m;
client_body_buffer_size 256k;
client_body_temp_path /usr/local/nginx/client_body_temp;
proxy_temp_path /usr/local/nginx/proxy_temp;
fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
fastcgi_intercept_errors on;
tcp_nodelay on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 8k;
gzip_comp_level 5;
gzip_http_version 1.1;
gzip_types text/plain application/x-javascript text/css text/htmapplication/xml;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
include /etc/nginx/conf.d/status.conf;
}
status状态
[root@mysql-master nginx]# mkdir /etc/nginx/conf.d/
[root@mysql-master nginx]# cat /etc/nginx/conf.d/status.conf
server {
listen 81;
server_name localhost;
location /nginx_status {
stub_status on;
# auth_basic "Only for VIPs";
# auth_basic_user_file /etc/nginx/users/.htpasswd;
access_log off;
# allow 127.0.0.0/24;
# allow 192.168.0.0/24;
# deny all;
}
}
[root@mysql-master nginx]#
nginx启动脚本
[root@mysql-master nginx]# cat /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 30 21
# description: http service.
# Source Function Library
. /etc/init.d/functions
# Nginx Settings
NGINX_SBIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/etc/nginx/nginx.conf"
NGINX_PID="/var/run/nginx/nginx.pid"
RETVAL=0
prog="Nginx"
start() {
echo -n $"Starting $prog: "
mkdir -p /dev/shm/nginx_temp
daemon $NGINX_SBIN -c $NGINX_CONF
RETVAL=$?
echo
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -TERM
rm -rf /dev/shm/nginx_temp
RETVAL=$?
echo
return $RETVAL
}
reload(){
echo -n $"Reloading $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -HUP
RETVAL=$?
echo
return $RETVAL
}
restart(){
stop
start
}
configtest(){
$NGINX_SBIN -c $NGINX_CONF -t
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
restart
;;
configtest)
configtest
;;
*)
echo $"Usage: $0 {start|stop|reload|restart|configtest}"
RETVAL=1
esac
exit $RETVAL
[root@mysql-master nginx]# /etc/init.d/nginx restart
Stopping Nginx: [ OK ]
Starting Nginx: [ OK ]
[root@mysql-master nginx]# ss -tlnp|grep nginx
LISTEN 0 128 *:80 *:* users:(("nginx",74903,6),("nginx",74904,6))
LISTEN 0 128 *:81 *:* users:(("nginx",74903,7),("nginx",74904,7))
[root@mysql-master nginx]# mkdir /etc/zabbix/scripts/
测试:
[root@mysql-master local]# curl 192.168.158.130:81/nginx_status
Active connections: 1
server accepts handled requests
9 9 19
Reading: 0 Writing: 1 Waiting: 0
[root@mysql-master local]#
nginx获取key脚本
[root@mysql-master nginx]# mkdir /etc/zabbix/scripts/
[root@mysql-master zabbix_agentd.d]# vim /etc/zabbix/scripts/nginx-status.sh
#!/bin/bash
dBKUP_DATE=`date +%Y%m%d`
LOG="/var/log/zabbix/nginx-status.log"
HOST=`ifconfig eth0 | sed -n '/inet /{s/.*addr://;s/ .*//;p}'`
PORT="80"
function active {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null|
grep 'Active' | awk '{print $NF}'
}
function reading {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null|
grep 'Reading' | awk '{print $2}'
}
function writing {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null|
grep 'Writing' | awk '{print $4}'
}
function waiting {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null|
grep 'Waiting' | awk '{print $6}'
}
function accepts {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null|
awk NR==3 | awk '{print $1}'
}
function handled {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null|
awk NR==3 | awk '{print $2}'
}
function requests {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null|
awk NR==3 | awk '{print $3}'
}
# Run the requested function
$1
chmod +x nginx-status.sh
添加到/etc/zabbix/zabbix_agentd.d/nginx-status.conf
vim /etc/zabbix/zabbix_agentd.d/nginx-status.conf
UserParameter=nginx.accepts,/etc/zabbix/scripts/nginx-status.sh accepts
UserParameter=nginx.handled,/etc/zabbix/scripts/nginx-status.sh handled
UserParameter=nginx.requests,/etc/zabbix/scripts/nginx-status.sh requests
UserParameter=nginx.connections.active,/etc/zabbix/scripts/nginx-status.sh active
UserParameter=nginx.connections.reading,/etc/zabbix/scripts/nginx-status.sh reading
UserParameter=nginx.connections.writing,/etc/scripts/nginx-status.sh writing
UserParameter=nginx.connections.waiting,/etc/zabbix/scripts/nginx-status.sh waiting
模板下载密码:uwmd