Nginx和apache的优缺点
nginx相对于apache的优点:
- 轻量级,同样起web 服务,比apache 占用更少的内存及资源
- 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能
- 高度模块化的设计,编写模块相对简单
- 社区活跃,各种高性能模块出品迅速
apache 相对于nginx 的优点:
- rewrite ,比nginx 的rewrite 强大
- 模块超多,基本想到的都可以找到
- 少bug ,nginx 的bug 相对较多
Nginx 配置简洁, Apache 复杂
最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;
nginx是异步的,多个连接(万级别)可以对应一个进程
Nginx解决的问题
- 高并发
- 负载均衡
- 高可用
- 虚拟主机
- 伪静态
- 动静分离
安装
Tengine下载和文档
http://tengine.taobao.org/
Nginx官网和文档
http://nginx.org
编译安装
./ configure --prefix=/安装路径
make && make install
启动服务
修改可执行权限
chmod 777 nginx
启动服务
service Nginx start 启动服务
service Nginx stop 停止
service Nginx status 状态
service Nginx reload 动态重载配置文件
Nginx配置解析
定义Nginx运行的用户和用户组
user www www;
进程数
建议设置为等于CPU总核心数。
worker_processes 8;
全局错误日志
全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
error_log /var/log/nginx/error.log info;
进程文件
pid /var/run/nginx.pid;
打开的最多文件描述符
一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。
worker_rlimit_nofile 65535;
event
单个进程最大连接数
并发总数是 worker_processes 和 worker_connections 的乘积
在设置了反向代理的情况下,max_clients = worker_processes * worker_connections / 4