centos安装使用nginx

预置环境

yum install -y gcc gcc-c++

yum -y install pcre-devel openssl openssl-devel

下载

wget http://tar.matosiki.site/tar/nginx-1.15.0.tar.gz

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
tar -vxzf nginx-1.15.0.tar.gz 

cd nginx-1.15.0




./configure

# 如果有fastfds模块 或者 可以使用 

./configure --add-module=/usr/local/fastdfs-nginx-module/src


make & make install

编辑配置文件

vi /usr/local/nginx/conf/nginx.conf

更改端口

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
 server {
        listen       8899;
        server_name  localhost;

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

}
  1. 静态文件转发
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
  # 映射到本地路径 /home/iki/download
  location /download/ {
    root /home/iki;
    autoindex on;
  }

  # 映射到其他服务器地址
  location /proxy/ {
    proxy_pass http://172.27.82.119:9000;
  }
  
  
  1. 反向代理
1
2
3
4
5
6
7
8
9
 # 配置一个server
 server {
        listen       8800;
        server_name  matosiki.site;

        location / {
          proxy_pass http://matosiki.site ;
        }
    }
  1. 负载均衡
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
upstream matosiki.site; {
    ip_hash;
    server 172.27.82.119:8080;
    server 172.27.82.119:8082;
    server 172.27.82.121;
    server 172.27.82.112;
}
location / {
    proxy_pass http://matosiki.site;
}

启动

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 调试配置文件是否成功
/usr/local/nginx/sbin/nginx -t
# 启动
/usr/local/nginx/sbin/nginx
# 重启
/usr/local/nginx/sbin/nginx -s reload

# 停止
/usr/local/nginx/sbin/nginx -s stop

# 强制关闭
pkill nginx

# 查看nginx 启动用户
ps aux | grep "nginx: worker process" | awk '{print $1}'

配置开机启动

更改下面配置文件

1
2
3
4
5
# 启动应用路径
nginx="/usr/local/nginx/sbin/nginx"

# 文件配置
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

vi /etc/init.d/nginx

  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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/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/local/nginx/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/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:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   if [ -n "$user" ]; then
      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
    fi
}

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

更改文件权限

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

1
2
3

/etc/init.d/nginx start
/etc/init.d/nginx stop
1
2
3
4
5
6
7
# 添加到开机自启中

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

# 启动开机自启

chkconfig nginx on

启动服务

1
2
3
4
5
service nginx start

service nginx stop

service nginx restart