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--提供一键安装脚本的更多相关文章

  1. MySQL For Linux(CentOS/Ubuntu/Debian/Fedora/Arch)一键安装脚本(5.1-8.0)

    简介 很多童鞋不懂这么在Linux系统安装MySQL,网上大多数教程较复杂,不太适合小白安装,本教程提供一键安装脚本供大家使用,教大家怎么在Linux操作系统( 支持CentOS/Ubuntu/Deb ...

  2. LNMP、LAMP、LANMP一键安装脚本(定期更新)[转]

    这个脚本是使用shell编写,为了快速在生产环境上部署LNMP/LAMP/LANMP(Linux.Nginx/Tengine.MySQL/MariaDB/Percona.PHP),适用于CentOS/ ...

  3. 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 ...

  4. k3s单机版安装部署 附一键安装脚本

    作者:SRE运维博客 博客地址: https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/211109907029/ 相关话题:https://ww ...

  5. CentOS 6、7下pptp vpn一键安装脚本

    之前有折腾过<CentOS 6.7下IPSEC/L2TP VPN一键安装脚本>,不稳定.不支持IOS,因此换成pptp,并已经添加到<lnmp一键安装包>.这个脚本可以单独使用 ...

  6. LAMP最新源码一键安装脚本

    Linux+Apache+MySQL+PHP (脚本可以选择是否安装+Pureftpd+User manager for PureFTPd+phpMyAdmin+memcache),添加虚拟主机请执行 ...

  7. SSR服务端一键安装脚本

    支持新协议混淆,SSR服务端一键安装脚本   Shadowsocks-R 是项目 shadowsocks 的增强版,用于方便地产生各种协议接口.实现为在原来的协议外套一层编码和解码接口,不但可以伪装成 ...

  8. jdk1.8一键安装脚本(linux环境)

    1.下载jdk安装包和安装脚本 下载地址:https://pan.baidu.com/s/1bo6ADQ3 其中包括: jdk安装包:jdk-8u151-linux-x64.tar.gz jdk一键安 ...

  9. Centos7搭建pptp一键安装脚本

    废话不多说,先上脚本地址:Centos7一键pptp 使用: wget http://files.cnblogs.com/files/wangbin/CentOS7-pptp-host1plus.sh ...

  10. L2TP/IPSec一键安装脚本

    本脚本适用环境:系统支持:CentOS6+,Debian7+,Ubuntu12+内存要求:≥128M更新日期:2017 年 05 月 28 日 关于本脚本:名词解释如下L2TP(Layer 2 Tun ...

随机推荐

  1. mbed试玩—高速开发MCU应用(基于FRDM-KL25Z)

    mbed试玩 曾经參加一个站点的小小的比赛获得了一块Freescale的FRDM-KL25Z开发板.今天拿出来试玩的时候,插入电脑(板子连接OpenSDA接口)识别出一个128MB的虚拟磁盘,然后打开 ...

  2. Class 与 new的配合使用

    class Type{  // 定义新的类型Type /// ...... }; Type a;  Type b; // 像int a; int b;那样使用,  定义a和b为Type类型的变量 in ...

  3. 关于Android热点模式下的UDP广播

    最近尝试让easylink3在热点模式下连接,发现用普通的广播地址会报错,Network unreachable 尝试按照stackoverflow上的方法: public static int ge ...

  4. leetcode 258. Add Digits——我擦,这种要你O(1)时间搞定的必然是观察规律,总结一个公式哇

    Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. ...

  5. web filter用spring注入对象

    tomcat容器初始化顺序监听器–>过滤器–>servlet,因此springMVCservlet初始化之前,过滤器就已经初始化过了,如果在过滤器中需要注入spring容器管理的bean是 ...

  6. 【附论文】Facebook推面部识别软件 精准度高达97.25%

    论文下载链接:http://pan.baidu.com/s/1gd86HXp 以下转载自36kr. 认脸对于人来说不是什么难事,除非是韩国小姐才需要最强大脑.但是计算机做同样的事情就要困难得多了.不过 ...

  7. ZOJ3965 Binary Tree Restoring

    ZOJ3965 给定一颗二叉树的两种DFS序列 输出一种可能的二叉树的结构. 考察树的递归性质,不要想的太复杂. 当前节点在两个串中后面的节点假如不同则能确认两个子树,如果相同则把下个点作当前点的一个 ...

  8. 你想知道的关于JavaScript作用域的一切

    原文: https://toddmotto.com/everything-you-wanted-to-know-about-javascript-scope/ JavaScript中有许多章节是关于s ...

  9. 10.17NOIP模拟赛

    #include<iostream> #include<cstdio> #include<cstring> #define N 1001 using namespa ...

  10. 洛谷P4887 第十四分块(前体)(二次离线莫队)

    题面 传送门 题解 lxl大毒瘤 我们考虑莫队,在移动端点的时候相当于我们需要快速计算一个区间内和当前数字异或和中\(1\)的个数为\(k\)的数有几个,而这个显然是可以差分的,也就是\([l,r]\ ...