代码改变世界

Linux下安装启动nginx的过程

2015-12-26 17:38  Mandylover  阅读(562)  评论(0编辑  收藏  举报

1.首先将nginx的安装包传到虚拟机里的/home目录下

2.为了方便nginx运行而不影响linux安全需创建组合用户

groupadd -r nginx
useradd -r -g nginx  -M nginx

3.进入到/home目录下后,进行解压

tar –zxvf   tengine-2.1.0.tar.gz

4.解压完成后,进入到tengine的目录

5.进行预编译:./configure --prefix=/usr/tengine-2.1.0,如果需要gcc等可在yum下进行安装

6.预编译完成后,进行编译和安装:make && make install

7.配置Nginx为系统服务,以方便管理,即在/etc/rc.d/init.d/的目录下建立文本文件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:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/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/tengine-2.1.0/sbin/nginx"
prog=$(basename $nginx)
 
NGINX_CONF_FILE="/usr/tengine-2.1.0/conf/nginx.conf"
 
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
 
lockfile=/var/lock/subsys/nginx
 
make_dirs() {
   # make required directories
   user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   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

8.修改nginx文件的执行权限
    chmod +x nginx

9.添加该文件到系统服务中去:chkconfig --add nginx,若查看是否添加成功,则使用命令:chkconfig --list nginx
10.启动服务的命令:service nginx start

11.在conf里的nginx.conf文件里配置配置文件(注意大括号对应)

12.模块ngx_http_auth_basic_module 允许使用“HTTP基本认证”协议验证用户名和密码来限制对资源的访问。
     location / {
        auth_basic           "closed site";
        auth_basic_user_file /var/users;
     }
     Apache发行包中的htpasswd命令来创建user_file 文件
     htpasswd -c -m /var/users username
    
  autoindex 在浏览器中列出当前目录的文件索引
  autoindex  on;