1.nginx介绍
Nginx (“engine x”) 是一个开源的、支持高性能、高并发的WWW服务和代理服务软件。
它是由俄罗斯人IgorSysoev开发的,最初被应用在俄罗斯的大型网站www.rambler.ru上。
后来作者将源代码以类BSD许可证的形式开源出来供全球使用。
2.Nginx3大主要功能
1)网页服务:自身是静态Web服务,
apache,lighttpd,IIS
还支持动态Web服务
PHP(fastcgi_pass)
JAVA(proxy_pass)
Python(uwsgi_pass)
2)负载均衡\反向代理
haproxy,lvs,F5,netscaler
只支持http,现在tcp/udp。
3)缓存服务器
squid,varnish
3.特点:
2008冒头,当时Apache老大,Nginx如何超越对手。
Apache 43% Nginx 42%
最大特点:静态小文件高并发,占用资源少。软件本身小。
企业面试时需要解答如下Nginx HTTP服务器的特色及优点:
1)支持高并发:能支持几万并发连接(特别是静态小文件业务环境)。
2)资源消耗少:在3万并发连接下,开启10个Nginx线程消耗不到200MB内存。
3)可以做HTTP反向代理及加速缓存,即负载均衡功能,内置对RS节点服务
器健康检查功能,这相当于专业的haproxy软件或lvs的功能。
具备squid等专业缓存软件等的缓存功能。
4.Nginx主要应用场景:
1)静态Web服务器:
使用Nginx运行HTML、JS、CSS、小图片等静态数据(此功能类似lighttpd软件)。
2)配合运行动态Web服务器:
Nginx结合FastCGI运行PHP等动态程序(例如使用fastcgi_pass方式)。
Nginx结合proxy_pass支持Java动态程序(tomcat/resin服务)。
Nginx结合uwsgi_pass支持Python。
3)反向代理/负载均衡
http负载均衡
4)做Web缓存服务器(把文件放入内存里)。
5.反向代理与负载均衡
代理:海外代购,微商:代理:代替别人做事。
正向代理:由内向外。 代替 效率低
代替局域网内PC,请求外部应用服务。
反向代理:由外向内 代替 效率低
代替外部的用户请求内部的应用服务器。
负载均衡:转发、效率高
甩手掌柜。
6.为什么Nginx总体性能比Apache高?
Nginx使用最新的epoll(Linux2.6内核)和kqueue(freebsd)异步网络I/O模型,而Apache则使用的是传统的select模型。目前Linux下能够承受高并发访问的Squid、Memcached软件都采用的是epoll模型。
Apache则使用的是传统的select模型,Nginx使用高并发的epoll模型
select模型:伙伴去宿舍找你,一个一个找。。效率低。
epoll模型: 伙伴去宿舍找你,先问宿管大妈,看看在哪间宿舍,然后直奔具体宿舍。效率高
7.软件安装
Linux系统如何安装软件?
1、rpm安装
简单 快。依赖多,解决依赖困难繁琐。
2、yum安装 *****
简单快,自动解决依赖。不能选择软件版本或软件存放路径。
3、编译安装(源码编译)*****
慢 复杂 需要GCC编译器,可以自定义安装(版本、软件路径)
4、将源码制作成rpm,然后放到yum仓库,实现yum自动安装。
一次性慢 复杂,安装快,可以自定义安装(版本、软件路径)
5、二进制安装、
8。安装过程
#创建安放软件目录
mkdir -p /server/tools
#切换此目录下
cd /server/tools
#下载nginx软件包
wget http://nginx.org/download/nginx-1.16.0.tar.gz
#下载依赖包
yum install pcre pcre-devel -y
yum install openssl openssl-devel -y
#解压nginx包
tar xf nginx-1.16.0.tar.gz
#创建用户
useradd -s /sbin/nologin -M www
#进入解压软件包目录内
cd nginx-1.16.0
#
./configure --user=www --group=www --prefix=/application/nginx-1.16.0/ --with-http_stub_status_module --with-http_ssl_module --with-pcre
make
make install
#创建启动软件程序软连接
ln -s /application/nginx-1.16.0/ /application/nginx
/application/nginx/sbin/nginx