1、功能描述
1. 安裝支持包,從軟件源下載自定義的NGINX包,創建NGINX用戶和用戶組。
2. 安裝並初始化NGINX配置。
3. 運行NGINX並檢測運行狀態。
2、實現
源碼如下:
#!/bin/bash # eastmoney public tools # version: v1.0.1 # create by XuHoo, 2016-9-28 # function environment() { if [[ "$USER" != "root" ]]; then echo "Current user is not root" return 1 fi yum -y install wget curl pcre pcre-devel zlib zlib-devel gcc gcc-c++ &> /tmp/nginx_install.log # getUrl: Input download source address # getUrl='http://172.16.1.1\nginx-1.8.1.tar.gz' wget -P /tmp/ $getUrl/nginx.tar.gz grep "nginx" /etc/passwd > /dev/null if [[ $? -ne 0 ]]; then # check user and group groupadd nginx useradd -M -g nginx -s /sbin/nologin nginx fi cd /tmp; tar -zxf nginx.tar.gz; cd nginx return 0 }; environment; [ $? -ne 0 ] && exit 1 function install() { # Compile before installation configuration ./configure --prefix=/usr/local/nginx \ --user=nginx --group=nginx \ --with-http_stub_status_module \ &> /tmp/nginx_install.log if [[ $? -ne 0 ]]; then return 1 else # make && make install make &> /tmp/nginx_install.log make install &> /tmp/nginx_install.log if [[ $? -ne 0 ]]; then return 1 fi return 0 fi }; install; [ $? -ne 0 ] && exit 1 function optimize() { ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ > /dev/null cp -f /tmp/nginx_control.sh /etc/init.d/nginx cp -f /tmp/nginx.conf /usr/local/nginx/conf/nginx.conf # The number of CPU cores current server, # Amend the "worker_processes" field to the value of the processor processor=`cat /proc/cpuinfo | grep "processor" | wc -l` sed -i "s/^w.*;$/worker_processes ${processor};/g" /usr/local/nginx/conf/nginx.conf chmod +x /etc/init.d/nginx chkconfig --add nginx retval=`chkconfig --level 3 nginx on` # Configure nginx open start service return $retval }; optimize; [ $? -ne 0 ] && exit 1 function run() { # Test nginx.conf file syntax is correct /etc/init.d/nginx test &> /tmp/nginx_run.log if [[ $? -ne 0 ]]; then retval=$? else # Start nginx server /etc/init.d/nginx start &> /tmp/nginx_run.log if [[ $? -ne 0 ]]; then retval=$? fi fi return 0 }; run; [ $? -ne 0 ] && exit 1 function check() { # Modified index.html page content content=$"deployment on $(date "+%Y-%m-%d %H:%M:%S")" echo $content > /usr/local/nginx/html/index.html # View the index.html, and the output of the modified index.html page /etc/init.d/nginx status echo -n ": "; curl http://localhost }; check
http://xxxxxx/Linuxjc/1161871.html TechArticle