1. 目錄結構
[root@qing salt]# tree /srv/salt/nginx/
/srv/salt/nginx/
+-- config.sls
+-- files
| ? +-- nginx
| ? +-- nginx-1.0.15.tar.gz
| ? +-- nginx.conf
| ? +-- nginx_log_cut.sh
| ? +-- nginx-upstream-jvm-route-0.1.tar.gz
+-- init.sls
+-- install.sls
1 directory, 8 files
2.?
[root@qing nginx]# cat init.sls
include:
? - nginx.install
? - nginx.conf
? - nginx.vhost
[root@qing nginx]# cat config.sls?
nginx_conf:
? file.managed:
? ? - name: /usr/local/webserver/nginx/conf/nginx.conf
? ? - source: salt://nginx/files/nginx.conf
? ? - template: jinja
nginx_script:
? file.managed:
? ? - name: /etc/init.d/nginx
? ? - source: salt://nginx/files/nginx
? ? - mode: 755
? ? - user: root?
? cmd.run:
? ? - names:
? ? ? - /sbin/chkconfig --add nginx
? ? ? - /sbin/chkconfig ?nginx on
? ? - unless: /sbin/chkconfig --list nginx
? service.running:
? ? - name: nginx
? ? - enable: True
? ? - reload: True
? ? - watch:
? ? ? - file: nginx_conf
nginx_log_cut: ?
? file.managed:
? ? - name: /usr/local/webserver/nginx/sbin/nginx_log_cut.sh
? ? - source: salt://nginx/files/nginx_log_cut.sh
? cron.present:
? ? - name: /usr/local/webserver/nginx/sbin/nginx_log_cut.sh
? ? - user: root
? ? - minute: 59
? ? - hour: 23?
? ? - require:?
[root@qing nginx]# cat install.sls?
nginx_trans:
? file.managed:
? ? - source: salt://nginx/files/nginx-1.0.15.tar.gz
? ? - name: /tmp/nginx-1.0.15.tar.gz
? ? - unless: test -e /tmp/nginx-1.0.15.tar.gz
nginx_extract:
? cmd.run:
? ? - cwd: /tmp
? ? - names:?
? ? ? - tar zxpf nginx-1.0.15.tar.gz
? ? - require:
? ? ? - file: nginx_trans
nginx_pkgs:
? pkg.installed:
? ? - pkgs:
? ? ? ?- gcc
? ? ? ?- openssl-devel
? ? ? ?- pcre-devel
? ? ? ?- zlib-devel
? ? ? ?- libxml2?
? ? ? ?- libxml2-devel
? ? ? ?- libxslt-devel
nginx_user:
? user.present:
? ? - name: nginx
? ? - uid: 1502
? ? - createhome: False
? ? - shell: /sbin/nologin
nginx_compile:
? cmd.run:
? ? - cwd: /tmp/nginx-1.0.15
? ? - names:
? ? ? - mkdir -p /usr/local/webserver/
? ? ? - ./configure --user=nginx --group=nginx --prefix=/usr/local/webserver/nginx --with-pcre --with-http_stub_status_module --with-http_flv_module --with-http_ssl_module --with-http_dav_module --with-http_gzip_static_module --with-mail --with-mail_ssl_module --with-http_realip_module --with-http_xslt_module --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl
? ? ? - make
? ? ? - make install
? ? - unless: test -d /usr/local/webserver/nginx
[root@qing nginx]# ll files/
total 700
-rw-r--r-- 1 root root ? 2588 Sep ?7 00:46 nginx
-rw-r--r-- 1 root root 693025 Apr 12 ?2012 nginx-1.0.15.tar.gz
-rw-r--r-- 1 root root ? 1529 Sep ?7 01:28 nginx.conf
-rw-r--r-- 1 root root ? ?568 Sep ?7 01:40 nginx_log_cut.sh
-rw-r--r-- 1 root root ? 5807 Jul ?1 ?2010 nginx-upstream-jvm-route-0.1.tar.gz
[root@qing nginx]#?
[root@qing nginx]# cat files/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
# pidfile: ? ? /usr/local/nginx/logs/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/webserver/nginx/sbin/nginx"
prog=$(basename $nginx)
?
NGINX_CONF_FILE="/usr/local/webserver/nginx/conf/nginx.conf"
?
?
lockfile=/var/lock/subsys/nginx
?
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
[root@qing nginx]# cat files/nginx_log_cut.sh?
#!/bin/bash
logs_path="/usr/local/webserver/nginx/logs/"
mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat /usr/local/webserver/nginx/logs/nginx.pid`
cd ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
tar zcpf access_$(date -d "yesterday" +"%Y%m%d").log.tar.gz access_$(date -d "yesterday" +"%Y%m%d").log
rm -f access_$(date -d "yesterday" +"%Y%m%d").log
exit
轉載于:https://blog.51cto.com/2385662/1707811