nginx--提供一键安装脚本
nginx特点
- 基于进程池实现的fastcgi
- 单一进程即可实现处理上千的连接
- 易于扩展的插件系统
安装篇
*下载源码
curl -O http://nginx.org/download/nginx-1.8.0.tar.gz
*创建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 <on|off>
作用:
启用或者禁用守护进程模式,如果禁用则程序不能后台运行只能前台运行
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
nginx--提供一键安装脚本的更多相关文章
- MySQL For Linux(CentOS/Ubuntu/Debian/Fedora/Arch)一键安装脚本(5.1-8.0)
简介 很多童鞋不懂这么在Linux系统安装MySQL,网上大多数教程较复杂,不太适合小白安装,本教程提供一键安装脚本供大家使用,教大家怎么在Linux操作系统( 支持CentOS/Ubuntu/Deb ...
- LNMP、LAMP、LANMP一键安装脚本(定期更新)[转]
这个脚本是使用shell编写,为了快速在生产环境上部署LNMP/LAMP/LANMP(Linux.Nginx/Tengine.MySQL/MariaDB/Percona.PHP),适用于CentOS/ ...
- centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课
centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/ind ...
- k3s单机版安装部署 附一键安装脚本
作者:SRE运维博客 博客地址: https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/211109907029/ 相关话题:https://ww ...
- CentOS 6、7下pptp vpn一键安装脚本
之前有折腾过<CentOS 6.7下IPSEC/L2TP VPN一键安装脚本>,不稳定.不支持IOS,因此换成pptp,并已经添加到<lnmp一键安装包>.这个脚本可以单独使用 ...
- LAMP最新源码一键安装脚本
Linux+Apache+MySQL+PHP (脚本可以选择是否安装+Pureftpd+User manager for PureFTPd+phpMyAdmin+memcache),添加虚拟主机请执行 ...
- SSR服务端一键安装脚本
支持新协议混淆,SSR服务端一键安装脚本 Shadowsocks-R 是项目 shadowsocks 的增强版,用于方便地产生各种协议接口.实现为在原来的协议外套一层编码和解码接口,不但可以伪装成 ...
- jdk1.8一键安装脚本(linux环境)
1.下载jdk安装包和安装脚本 下载地址:https://pan.baidu.com/s/1bo6ADQ3 其中包括: jdk安装包:jdk-8u151-linux-x64.tar.gz jdk一键安 ...
- Centos7搭建pptp一键安装脚本
废话不多说,先上脚本地址:Centos7一键pptp 使用: wget http://files.cnblogs.com/files/wangbin/CentOS7-pptp-host1plus.sh ...
- L2TP/IPSec一键安装脚本
本脚本适用环境:系统支持:CentOS6+,Debian7+,Ubuntu12+内存要求:≥128M更新日期:2017 年 05 月 28 日 关于本脚本:名词解释如下L2TP(Layer 2 Tun ...
随机推荐
- C#.NET 如何快速输入一个对象事件对应的方法
直接在Textbox图像对象中找到这个对象的KeyPress方法,然后输入触发的事件名称.效率更高,不容易出错. "void TypeAreaKeyPress(object sender, ...
- hdu 4864 Task(贪心)
pid=4864">http://acm.hdu.edu.cn/showproblem.php?pid=4864 大致题意:有n台机器和m个任务,都有两个參数工作时间time和难度le ...
- Android 代码设置Activity 背景透明
当指定Activity 样式 Them.Dialog 时候 又不同意用XML 设置 Activity 的背景颜色的时候 用代码 this.getWindow().getDecorView().setB ...
- Android学习笔记-tween动画之java实现
Android动画分为Tween动画和Frame动画,近期学习了,体tween动画,现在讲学习的心得以及相关知识介绍如下. Tween又称为补间动画,可以把对象进行缩小.放大.旋转和渐变等操作. ...
- (五)Java 对象和类
Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 消息解析 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例,有状态和行为. ...
- regulator_get 调用过程【转】
本文转载自:http://blog.csdn.net/u012719256/article/details/52083961 Touch panel DTS 分析(MSM8994平台,Atmel 芯片 ...
- 【Silverlight】Bing Maps学习系列(六):使用扩展模式(Extended Modes)(转)
[Silverlight]Bing Maps学习系列(六):使用扩展模式(Extended Modes) 微软Bing Maps推出有有段时间了,通过不断的改进和新的地图更新,现在已经基本上形成了一套 ...
- hive使用
运行hadoop [root@hadoop0 ~]# start-all.sh 进入命令行[root@hadoop0 ~]# hive 查询昨天的表 hive> select * from st ...
- Wedding(2-SAT)
传送门 稍微复杂一点的2-SAT. 读题之后发现有以下限制: 1.每一对夫妻(包括新郎和新娘)不能坐在桌子的一侧. 2.对于一些给定的非法(自行脑补)的关系,这两个人不能坐在新娘的同一侧. 因为每个人 ...
- Flask的配置文件 与 session
配置文件 flask中的配置文件是一个flask.config.Config对象(继承字典) 默认配置为: { 'DEBUG': get_debug_flag(default=False), 是否开启 ...