centos 원 키 설치 설정 nginx 스 크 립 트

14224 단어 liunxnginx
centos 원 키 설치 설정 nginx 스 크 립 트
installNginx.ssh
vi 또는 vim 으로 installNginx. ssh 편집
#!/bin/bash
# author:kwin
# Email:[email protected]

src="/usr/local/src/"
cd $src

#      ,   
#findPortKill 80
findPortKill (){
  processe=`lsof -i:${1} -n|awk '{print $2}'|grep '^[1-9]'`
  for i in $processe
    do
#  echo "Kill the $1 process [ $i ]"
  kill -9 $i
    done
}

#              PATH ,    
addToPATH(){

bin=${1}

echo $PATH|grep ${bin} >/dev/null
if [ $? -ne 0 ]; then

echo "export PATH=\$PATH:${bin}">>/etc/profile
fi
}



nginxConf(){

cp /usr/local/nginx/conf/nginx.conf  /usr/local/nginx/conf/nginx.conf.bak
sed -i '35,79c  include  ../site/*.conf;' /usr/local/nginx/conf/nginx.conf
mkdir /usr/local/nginx/site

cat>/usr/local/nginx/site/default.conf<80;
        server_name  localhost;

        gzip on; #  gizip
        gzip_buffers 32 4K;#        32 ?   4K
        gzip_comp_level 6 ;#       6
        gzip_min_length 4000;#         4bit
        gzip_types text/css text/xml apploation/x-javascript;#  CSS、XML、HTML、JS      

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        root   /var/www;

        location / {
          #   try_files \$uri \$uri/ /index.php?\$query_string;
            index  index.html index.htm index.php;

        #   jpg、jpeg、gif、png、js、css     
        if (\$fastcgi_script_name ~* \.[jpg|jpeg|gif|png|js|css] ) {
            expires 1d;
            }
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php\$ { 

            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index index.php; 
            fastcgi_param  SCRIPT_FILENAME  \$document_root\$fastcgi_script_name;
            include        fastcgi_params; 

        } 

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php\$ {
        #    proxy_pass   http://127.0.0.1;
        #}


        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    } 
EOF
}


addNginxService(){
cat>/etc/init.d/nginx<#!/bin/sh  
#  
# nginx - this script starts and stops the nginx daemin  
#  
# 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/nginx/sbin/nginx"  
prog="Nginx"  

NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"  

lockfile=/var/lock/subsys/nginx  

start() {  
    [ -x $nginx ] || exit 5  
    [ -f $NGINX_CONF_FILE ] || exit 6  
    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  
    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  
EOF

 chmod 755 /etc/init.d/nginx 
 chkconfig --add nginx
 chkconfig --level 2345 nginx on
}

#  nginx
installNginx(){

yum -y  install pcre-devel openssl openssl-devel gcc gcc-c++ ncurses-devel perlddd

fileName="nginx-1.9.9"
package="${fileName}.tar.gz"
installDir="/usr/local/nginx"

if test ! -f ${package}
then
wget http://nginx.org/download/${package}
fi


tar zxvf $package

cd $fileName
./configure --prefix=${installDir}
make && make install
echo "    "


nginxConf


#         80        ,   
#                
/usr/local/nginx/sbin/nginx 1> /dev/null 2>&1
if [ $? -ne 0 ]; then
findPortKill 80
/usr/local/nginx/sbin/nginx
fi

#sleep :        。
#usleep :         。
#1s = 1000ms = 1000000us

usleep 100000

pid=`cat /usr/local/nginx/logs/nginx.pid`

echo "nginx     ,    ${pid}"

bin="${installDir}/sbin"

#              PATH ,    
addToPATH ${bin}


#      
addNginxService
}

installNginx

installNginx. ssh 파일 실행 제한 권 부여
# chmod +x installNginx.ssh

설치 실행
./installNginx.ssh

기본 명령
service nginx [start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest]

가상 호스트 관리
설치 디 렉 터 리 (/ usr / local / nginx /) 에 있 는 site 디 렉 터 리 에 default. conf 기본 가상 호스트 관리 모델 이 있 습 니 다. 추 후 확장 가상 호스트 는 default. conf 파일 을 직접 복사 할 수 있 습 니 다. 파일 이름 형식 은 *. conf 이 고 접두사 만. conf 이면 해석 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기