您的位置:首页 > 运维架构 > Nginx

nginx--提供一键安装脚本

2015-11-14 01:09 633 查看

nginx特点

基于进程池实现的fastcgi

单一进程即可实现处理上千的连接

易于扩展的插件系统

安装篇

*下载源码

curl   -O http://nginx.org/download/nginx-1.8.0.tar.gz[/code] *创建nginx用户

useradd -s /sbin/nologin -d /usr/local/nginx nginx

*安装必要的软件依赖

yum install pcre pcre-devel  zlib zlib-devel  openssl openssl-devel

编译前的配置

查看开关变量

./configure  --help


这个地方建议保存一个shell脚本便于日后编译

[root@3maoer nginx-1.9.6]# cat install.sh
#!/bin/sh
./configure      --prefix=/usr/local/nginx-1.9.6        #一般指定这个,也便于升级
make
make install

ln  -s  /usr/local/nginx-1.9.6  /usr/local/nginx        #便于用最新的版本
[root@3maoer nginx-1.9.6]#

*控制nginx进程

nginx通过nginx发送不同的信号来实现管理进程

/usr/local/nginx/sbin/nginx -s [stop|quit|reopen|reload]   停止|退出|重新打开日志|重新载入配置文件

*新配置加入的流程

1.创建配置文件

2.测试配置文件有效性 /usr/local/nginx/sbin/nginx -t -c 配置文件# 显示配置是否有效

3.覆盖默认配置文件

4.nginx -s reload 重新载入新的配置

*显示configure配置选项

/usr/local/nginx/sbin/nginx -V

*指定额外的命令

./nginx -s 'timer_resolution 200ms'

*ngin加入系统服务

cat >/etc/init.d/nginx<<'EOF'
#!/bin/sh
#chkconfig: 2345 80 90
#description:auto_run

#注意上面2 3行不能少
set  -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="nginx daemon"
NAME="nginx"
DAEMON=/usr/local/nginx/sbin/$NAME
SCRIPTNAME=/etc/init.d/$NAME

test -x $DAEMON || exit 0

d_start() {

$DAEMON  || echo -n " already running"
}

d_stop() {
$DAEMON -s quit || echo -n " not running"

}

d_reload() {

$DAEMON -s reload || echo -n " could not reload"
}

d_status() {

ps  -ef|grep nginx|grep  -v grep
}
case "$1" in
start)
echo  -n "starting $DESC :$NAME"
d_start
echo  "."
;;
stop)
echo -n "stopping $DESC :$NAME"
d_stop
echo "."
;;
reload)
echo  -n "reloading $DESC :$NAME configuration...."
d_reload
echo "reloaded."
;;
restart)
echo  -n "restart $DESC :$NAME "
d_stop
sleep 2
d_start
echo "."
;;
status)
d_status
;;
*)
echo "$SCRIPTNAME {start|stop|restart|reload}"  >&2
exit 3
esac
exit 0
EOF
chmod +x /etc/init.d/nginx
chkconfig --add nginx

nginx配置语法

注释

所有以
#
开头的行都是注释

指定worker进程运行用户以及运行组

user user [group]


nginx可以以指定的用户组运行

文件包含

include xxxconf


作用:将指定配置包含到当前位置,在文件名中可以包含通配符:

格式良好的配置应该提供下面的几个配置

|名称 |描述 |

|-----------:|-------------------------------------------------:|

|nginx.conf|应用程序的基本配置文件 |

|mime.types|一个文件扩展列表文件,他们与MIME类型关联 |

|fastcgi.conf|与FastCGI相关的配置文件 |

|proxy.conf|Proxy相关的配置 |

|sites.conf|配置Nginx提供的网站,包括虚拟机,一般每一个域建立一个单独的文件|

命令

每一条命令必须写上”;“表示一条命令

命令快

格式:block_name { .... }

作用:便于区分全局,标识,继承快命令

不同的区块有着不同命令

如:

http {
server {
listen 80;
server_name 3maoer.com;
location ^~/admin/ {

index index.php;
}
}
}


正则表达式

nginx的配置location rewrite 命令支持复杂的正则表达式

指令值单位

k/K 千字节

m/M 兆字节

ms:Milliseconds 毫秒

s:Seconds 秒

m:Minutes 分钟

h:Hours 小时

d:Days 天

w:Weeks 星期

M:Months (30天)月

y:Years (365天)年


时间默认不写是秒



变量

nginx内置了一些变量



http模块

$nginx_version

模块的构成

基本模块

核心模块

daemon

值:on/off

默认:on

语法:daemon

作用:

启用或者禁用守护进程模式,如果禁用则程序不能后台运行只能前台运行

debug_points

值:stop或者abort

默认:none

事件模块

配置模块

安装脚本

#!/bin/sh

############################################################################
# install-nginx.sh #
# #
#功能: 一键安装nginx程序 #
#描述: 将要安装的版本赋值给PROGNAME,如安装1.8版本,PROGNAME="nginx-1.8.0" #
#创建: luomg #
#时间: 2016-01-19 23:00
############################################################################
PROGNAME="nginx-1.8.0"
BASEDIR="/lnmp"

mkdir -p ${BASEDIR}

[ -f ${PROGNAME}.tar.gz ] ||
curl -O http://nginx.org/download/${PROGNAME}.tar.gz
useradd -s /sbin/nologin -d /usr/local/nginx nginx

yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel

tar -zxvf ${PROGNAME}.tar.gz

[ -d ${PROGNAME} ] && echo "已经解压"

cd ${PROGNAME}

./configure --prefix=${BASEDIR}/${PROGNAME}

make
make install

ln -s ${BASEDIR}/${PROGNAME} /usr/local/nginx

cat >/etc/init.d/nginx<<'EOF' #!/bin/sh #chkconfig: 2345 80 90 #description:auto_run #注意上面2 3行不能少 set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="nginx daemon" NAME="nginx" DAEMON=/usr/local/nginx/sbin/$NAME SCRIPTNAME=/etc/init.d/$NAME test -x $DAEMON || exit 0 d_start() { $DAEMON || echo -n " already running" } d_stop() { $DAEMON -s quit || echo -n " not running" } d_reload() { $DAEMON -s reload || echo -n " could not reload" } d_status() { ps -ef|grep nginx|grep -v grep } case "$1" in start) echo -n "starting $DESC :$NAME" d_start echo "." ;; stop) echo -n "stopping $DESC :$NAME" d_stop echo "." ;; reload) echo -n "reloading $DESC :$NAME configuration...." d_reload echo "reloaded." ;; restart) echo -n "restart $DESC :$NAME " d_stop sleep 2 d_start echo "." ;; status) d_status ;; *) echo "$SCRIPTNAME {start|stop|restart|reload}" >&2 exit 3 esac exit 0 EOF chmod +x /etc/init.d/nginx chkconfig --add nginx

参考资料

Nginx HTTP Server
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: