Nginx 和 tengine
•Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,
•其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网易、腾讯等。
•功能:
–web服务器
–web reverse proxy
smtp
reverse proxy
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是异步的,多个连接(万级别)可以对应一个进程
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文件的访问请求变成一个请求;
–自动去除空白字符和注释从而减小页面的体积
写入nginx的服务文件
功能:
web服务器
web reverse proxy
smtp reverse proxy
安装之前准备
1、依赖 gcc openssl-devel pcre-devel zlib-devel
安装:yum install gcc openssl-devel pcre-devel zlib-devel
2、创建用户和用户组。为了方便nginx运行而不影响linux安全
创建组:groupadd -r nginx
创建用户:useradd -r -g nginx -M nginx
-M 表示不创建用户的家目录。
安装Nginx
./configure
–prefix=/usr/tengine-2.1
make && make install
进入到 /etc/init.d/ 创建一个 tengine的文件 修改 权限 chmod +x tengine
然后将tengine的配置 复制到里面
#!/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/conf/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/tengine-2.1/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/etc/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:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -
options=$n