Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
占用内存:1-2M
并发能力:5万/秒(C语言开发), 3万/秒
免费:不花钱
特点:nginx是软件负载均衡.
Nginx 常用功能:
- HTTP代理和反向代理(反向代理最广泛)
- 负载均衡
1) 内置策略
a) 轮询
将请求按顺序(时间,排序)for后端节点,出问题节点自动排除
b) 加权轮询
轮询考虑后端节点接受请求的权重,指定节点几率
c) IP hash
将前端访问IP进行hash操作,根据hash结果将请求分配节点,避免session在多个节点共享
2) 扩建策略
a) url hash
对前端请求的url进行hash操作(提高缓存效率,需配置缓存服务器)
b) fair
第三方模块,自行查询
- Web缓存
取代Squid
Nginx安装:
- Windows: 解压运行即可
- Linux:
1) #mkdir /nginx/ 新建目录
2) #cp nginx安装文件.tar.gz /nginx 将安装文件复制到对应目录下
3) #tar xf nginx安装文件.tar.gz 解压归档文件
4) #./configure --prefix=/Nginx将工作路径定位到解压目录,命令配置生成Makerfile文件
5) #make 编译
6) #make install 使用maker的install命令安装
7) #cd/nginx
8) #ls -1 查看资源
Nginx配置文件
默认的Nginx服务器配置文件都存放在安装目录conf中,主配置文件为nginx.conf
worker_processes 1; #全局生效
events {
worker_connections 1024; #在events部分中生效
}
http {
include mime.types; #以下指令在http部分中生效
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server { #以下指令在http的server部中生效
listen 80;
server_name localhost;
location / { #以下指令在http/server的localhost生效
#root代表文件夹
root html;
#index 默认访问页面
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
全局块:主要设置一些影响Nginx服务运行的配置指令,例如:配置运行用户,PID存放路径,日志存放路径等
events块:影响Nginx服务器与用户的网络连接,例如:是否允许同时接受多个网络连接,选取那种事物驱动模块处理请求等
http块:代理,缓存和日志定义等大部分的功能和第三方模块配置都放在里面
server块:本虚拟主机的监听配置和名称或IP配置
location块:对特定请求进行处理,地址定向,数据缓存和第三方配置等