目录
1 什么是nginx
1、Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
2、Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件代理服务器,并在一个BSD-like协议下发行。
3、由俄罗斯的程序设计师lgor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler使用。
4、其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。
5、ginx相较于Apache\lighttpd具有占有内存少,稳定性高等优势,并且依靠并发能力强,丰富的模块库以及友好灵活的配置而闻名。
6、在Linux操作系统下,nginx使用epoll事件模型,得益于此,nginx在Linux操作系统下效率相当高。同时Nginx在OpenBSD或FreeBSD操作系统上采用类似于Epoll的高效事件模型kqueue。
7、Nginx作为负载均衡服务:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。
8、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
这就是关于nginx的介绍,Nginx也算是一门简单的技术,使用也比较方便。重点是可以给系统带来很大的性能提升。
2 为什么使用nginx.
1、作为Web服务器有优势
作为Web服务器,Nginx处理静态文件、索引文件,自动索引的效率非常高。
2、作为代理服务器有优势
作为代理服务器,Nginx可以实现无缓存的反向代理加速,提高网站运行速度。
3、作为负载均衡服务器有优势
作为负载均衡服务器,Nginx既可以在内部直接支持Rails和PHP,也可以支持HTTP代理服务器对外进行服务,同时还支持简单的容错和利用算法进行负载均衡。
4、性能好
Nginx是专门为性能优化而开发的,在实现上非常注重效率。它采用内核Poll模型,可以支持更多的并发连接,最大可以支持对50000个并发连接数的响应,而且只占用很低的内存资源。
5、稳定性强
Nginx采取了分阶段资源分配技术,使得CPU与内存的占用率非常低。Nginx官方表示,Nginx保持10000个没有活动的连接,而这些连接只占用2.5MB内存,因此,类似DOS这样的攻击对Nginx来说基本上是没有任何作用的。宕机的概率非常小。
6、高可用性
Nginx支持热部署,启动速度特别迅速,因此可以在不间断服务的情况下,对软件版本或者配置进行升级,即使运行数月也无需重新启动,几乎可以做到7×24小时不间断地运行。
7、高并发连接
跨平台、配置简单、方向代理、高并发连接:处理2-3万并发连接数,官方监测能支持5万并 发,内存消耗小:开启10个nginx才占150M内存 ,nginx处理静态文件好,耗费内存少。
8、健康检查功能
如果有一个服务器宕机,会做一个健康检查,再发送的请求 就不会发送到宕机的服务器了。重新将请求提交到其他的节点上。
3 如何安装nginx
(1)安装相关的依赖
yum install -y gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
(2)上传nginx并解压
tar -zxvf xxx.tar.gz
(3)创建一个目录---作为nginx的安装路径
mkdir /usr/nginx
(4)进入到nginx的解压目录并指定nginx的安装路径为上面的路径
./configure --prefix=/usr/nginx
(5)编译nginx的源码并安装
make 编译
make install 安装(可以选择这个直接安装)
(6)进入安装路径 /usr/nginx
conf: nginx的配置目录
html:静态资源
logs: 日志
sbin: 脚本---启动 关闭 重加载
(7)启动nginx
进入 cd /usr/loacl/sbin/
./nginx 启动nginx
./nginx -s stop 关闭nginx
./nginx -s reload 重新加载配置文件
通过ps -ef | grep nginx命令查看进程
(8)访问nginx
访问ngixn前关闭防火墙
5.5 了解nginx的配置文件
进入
自定义一个server配置
server {
listen 81;
server_name localhost;
location / {
root static;
index main.html;
}
}
重新加载配置文件
/usr/nginx/sbin/nginx -s reload