更多
更多

Nginx安装

系统平台:Centos 6 x86

全程需要注意路径问题


Nginx 安装

  1. 安装编译工具及库文件

    yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

  2. 安装 PCRE

    PCRE 作用是让 Ngnix 支持 Rewrite 功能。

    1. 下载 PCRE 安装包:

      wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

    2. 解压安装包:

      tar zxvf pcre-8.35.tar.gz

    3. 进入安装包目录

      cd pcre-8.35

    4. 编译安装

      ./configure

      make && make install

  3. 安装 Nginx

    1. 下载Nginx

      一直退出到主目录 cd ..

      wget http://nginx.org/download/nginx-1.12.2.tar.gz

    2. 解压安装包

      tar zxvf nginx-1.12.2.tar.gz

    3. 进入安装包目录

      cd nginx-1.12.2

    4. 编译安装

      ./configure --prefix=/web/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/root/pcre-8.35

      make

      make install



Nginx 配置

配置文件nginx.conf,在/web/nginx/conf/里面,

主要配置这里:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
server {
listen 80;
server_name ykqmain.com;
index index.html index.htm index.php;
charset utf-8;
root /安装的路径/nginx/html;

if ($host != ykqmain.com) {
rewrite ^/(.*)$ http://ykqmain.com/$1 permanent;
}

#access_log logs/host.access.log main;

location / {
root html;
index index.html index.htm;
}

(我这里还配置了301转发,将带WWW的转到不带WWW的网址。)

检查配置文件ngnix.conf的正确性命令:/web/nginx/sbin/nginx -t

启动 Nginx: /web/nginx/sbin/nginx

访问站点测试是否成功



Nginx 开机自启

  1. 首先,在linux系统的/etc/init.d/目录下创建nginx文件

    vim /etc/init.d/nginx

  2. 添加

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    #!/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="/web/nginx/sbin/nginx"
    prog=$(basename $nginx)
    NGINX_CONF_FILE="/web/nginx/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' -`
    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

    需要根据安装路径修改下面这两项配置:

    nginx="/web/nginx/sbin/nginx" 修改成nginx执行程序的路径。
    NGINX_CONF_FILE="/web/nginx/conf/nginx.conf" 修改成配置文件的路径。

  3. 保存脚本文件后设置文件的执行权限

    chmod a+x /etc/init.d/nginx

  4. 使用chkconfig进行管理

    chkconfig --add /etc/init.d/nginx

    加完这个之后,就可以使用service对nginx进行启动,重启等操作了。

    service nginx start

    service nginx stop

    service nginx restart

  5. 设置开机启动:

    chkconfig nginx on


Enjoy it!

//参考: