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
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
2
3
4
5
6
7
8
9
|
# 配置一个server
server {
listen 8800;
server_name matosiki.site;
location / {
proxy_pass http://matosiki.site ;
}
}
|
- 负载均衡
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
|