1, nginx简介:
•Nginx("engine x") 是一个高性能的HTTP 和反向代理服务器,也是一个IMAP/POP3/SMTP 代理服务器。
•第一个公开版本0.1.0发布于2004年10月4日。
•其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名
•官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定
目前在使用nginx的网站有: ali, tudou, 京东, 爱奇艺, 网易, 蘑菇街, tencent, letv, 360, sina等
1), 负载均衡
2), 动静分离
2, nginx和apache相比优缺点:
1、nginx相对于apache的优点:轻量级,同样起web 服务,比apache 占用更少的内存及资源抗并发,nginx处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx能保持低资源低消耗高性能高度模块化的设计,编写模块相对简单社区活跃,各种高性能模块出品迅速啊
–2.apache 相对于nginx的优点:rewrite ,比nginx的rewrite 强大模块超多,基本想到的都可以找到少bug ,nginx的bug 相对较多
–3、Nginx 配置简洁, Apache 复杂
–4、最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程
3, 再次我们用的是alibaba加强的Tengine
原版nginx安装可参见nginx分类下的博客, 安装nginx
Tengine是nginx的加强版,封装版,淘宝开源
–官网http://tengine.taobao.org/
–动态模块加载(DSO)支持。加入一个模块不再需要重新编译整个Tengine;
–支持SO_REUSEPORT选项,建连性能提升为官方nginx的三倍;
–支持SPDY v3协议,自动检测同一端口的SPDY请求和HTTP请求;
–流式上传到HTTP后端服务器或FastCGI服务器,大量减少机器的I/O压力;
–更加强大的负载均衡能力,包括一致性hash模块、会话保持模块,还可以对后端的服务器进行主动健康检查,根据服务器状态自动上线下线,以及动态解析upstream中出现的域名;
–输入过滤器机制支持。通过使用这种机制Web应用防火墙的编写更为方便;
–支持设置proxy、memcached、fastcgi、scgi、uwsgi在后端失败时的重试次数
–动态脚本语言Lua支持。扩展功能非常高效简单;
–支持管道(pipe)和syslog(本地和远端)形式的日志以及日志抽样;
–支持按指定关键字(域名,url等)收集Tengine运行状态;
–组合多个CSS、Javascript文件的访问请求变成一个请求;
–自动去除空白字符和注释从而减小页面的体积
–…….
安装:
下载:
http://tengine.taobao.org/download/tengine-2.2.2.tar.gz
1), 安装依赖
yum groupinstall Development tools
yum install openssl-devel pcre-devel zlib-devel
2), 上传文件到 /usr/opt/ 目录下, 并解压
tar -zxvf tengine-2.1.0.tar.gz
3), 配置编译信息
./configure \--prefix=/opt/soft/tengine-2.1.0/ \--error-log-path=/var/log/nginx/error.log \--http-log-path=/var/log/nginx/access.log \--pid-path=/var/run/nginx/nginx.pid \--lock-path=/var/lock/nginx.lock \--with-http_ssl_module \--with-http_flv_module \--with-http_stub_status_module \--with-http_gzip_static_module \--http-client-body-temp-path=/var/tmp/nginx/client/ \--http-proxy-temp-path=/var/tmp/nginx/proxy/ \--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \--http-scgi-temp-path=/var/tmp/nginx/scgi \--with-pcre
4), make && make install
上一步不成功生成不了makefile文件, , ,
5), 此时开放防火墙端口, 已经可以直接访问:
http://192.168.208.101
6), 为了更便捷的启动nginx, 将nginx加入服务项中:
vim /etc/init.d/nginx
#!/bin/bash
#
# chkconfig: - 85 15
# description: nginx is a World Wide Web server. It is used to serve
# Source function library.
. /etc/rc.d/init.d/functions# Source networking configuration.
. /etc/sysconfig/network# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0nginx="/opt/soft/tengine-2.1.0/sbin/nginx"
prog=$(basename $nginx)NGINX_CONF_FILE="/opt/soft/tengine-2.1.0/conf/nginx.conf"#[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginxlockfile=/var/lock/subsys/nginx#make_dirs() {
# # make required directories
# user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
# 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
#}start() {[ -x $nginx ] || exit 5[ -f $NGINX_CONF_FILE ] || exit 6
# make_dirsecho -n $"Starting $prog: "daemon $nginx -c $NGINX_CONF_FILEretval=$?echo[ $retval -eq 0 ] && touch $lockfilereturn $retval
}stop() {echo -n $"Stopping $prog: "killproc $prog -QUITretval=$?echo[ $retval -eq 0 ] && rm -f $lockfilereturn $retval
}restart() {configtest || return $?stopsleep 1start
}reload() {configtest || return $?echo -n $"Reloading $prog: "
# -HUP是nginx平滑重启参数 killproc $nginx -HUPRETVAL=$?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" instart)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
注意修改nginx和配置文件为自己的路径
7), 更改文件执行权
# 修改文件执行权限
chmod +x nginx
# chmod 751 nginx#添加文件到系统服务中
chkconfig --add nginx
#查看是否添加成功
chkconfig --list nginx
service nginx start | stop | reload
会有个错误, 只需要
mkdir -p /var/tmp/nginx/client
系列来自尚学堂极限班