Nginx
Nginx是目前最流行的静态web服务软件
1、nginx介绍
是一个开源的、支持高性能、高并发的www服务和代理服务软件。
2、Nginx三大主要功能
1)网页服务:web服务,自身是静态web服务。
apche,lighttpd、IIS
还支持动态web服务
PHP(fasttcgi_pass)
python(uwsgi_pass)
JAVA(proxy_pass)
memcache(mecache_pass)
2)负载均衡\反向代理
haproxy、lvs、F5、netscaler
之前只支持http,现在TCP/UDP
3)缓存服务器
squid、varnish
3、特点:
2008年冒头,当时Apache是老大,Nginx如何超越对手的。
Apache 43% Nginx42%
特点:金泰小文件高并发,占用资源少。软件本身小。
企业面试时需要解答如下Nginx HTTP服务器的特色及优点:
1)支持高并发:能支持几万并发连接(特别是静态小文件业务环境)。
2)资源消耗少:在3万并发连接下,开启10个Nginx线程消耗不到200MB内存。
3)可以做HTTP反向代理及加速缓存,即负载均衡功能,内置对Rs节点服务器健康检查功能,这相当于专业的haproxy软件或1vs的功能具备squid等专业缓存软件等的缓存功能。
4、Nginx作为web服务器的主要应用场景;
1)静态Web服务器:吏用Nginx运行HTML、 JS,Css、小图片等静态数据(此功能类似lighttpd软件)
2)配合运行动态web服务器:
Nginx结合FastCGI运行PHP等动态程序(例如使用fastcgi pass方式)
Nginx结合等支持Java动态程序(tomcat/resin(常用proxy pass方式)。
Nginx结合uwsgi-pass支持Python。
3)反向代理/负载均衡
http负载均衡
4)做web缓存服务器(把文件放入内存里)
5、反向代理与负载均衡
代理:海外代购 ,微商:代理:代替别人做事。
正向代理:由内向外。 代替 效率低
代替局域网内PC,请求外部应用服务。
反向代理: 由外向内 代替 效率低
代替外部的用户请求内部的应用服务。
负载均衡:转发、效率高
甩手掌柜。
6·为什么Nginx总体性能比Apache高?
Nginx使用最新的epoll (Linux2.6内核)和kqueue (freebsd)异步网络1/0模型,而Apache则使用的是传统的select模型。目前Linux下能够承受高并发访问的Squid, Memcached软件都采用的是epoll模型。
Apache则使用的是传统的select模型,Nginx使用高并发的epol1模型
举例:
select模型:朋友去宿舍找你。一个一个宿舍找,#效率低
epoll模型:朋友去宿舍找你,先问宿管大妈,看看在哪间宿舍,然后直奔宿舍。#效率高
7、软件安装
1、rpm安装简单快。依赖多,解决依赖困难繁琐。
2、yum安装*****简单快, 自动解决依赖。不能选择软件版本或软件存放路径。
3、编译安装(源码编译) *****慢复杂需要GCC编译器,可以自定义安装(版本、软件路径)
4、将源码制作成rpm,然后放到yum仓库,实现yum自动安装。一次性慢复杂,安装快,可以自定义安装(版本、软件路径)
5、二进制安装制作RPM YUM仓库搭建https: //blog.oldboyedu.com/autodeploy-rpm/
8、Nginx安装
两种安装方法:
yum安装
epel源:版本低。
nginx官方源:版本高。
编译安装
pcre:URL重写软件,即实现伪静态需要这个软件
下载:
[root@web02 /server/tools]# wget http://nginx.org/download/nginx-1.16.0.tar.gz #没有这个目录需要创建
安装依赖 :
yum install pcre pcre-devel -y
yum install openssl openssl-devel -y
解压:
[root@web02 /server/tools]# tar xf nginx-1.16.0.tar.gz
创建用户:
[root@web02 /server/tools/nginx-1.16.0]# useradd -s /sbin/nologin www -M
执行:
在当前目录下执行
./configure --user=www --group=www --prefix=/application/nginx-1.16.0/ --with-http_stub_status_module --with-http_ssl_module
###############注释:每执行一步需要 执行以下echo $? 显示0表示正确
编译
执行这条命令:make&&make install
做软连接:
ln -s /application/nginx-1.16.0/ /application/nginx
执行nginx:
/application/nginx/sbin/nginx
结束
nginx目录介绍
[root@web02 /application/nginx]# tree
.
├── client_body_temp
├── conf
│ ├── fastcgi.conf
│ ├── fastcgi.conf.default
│ ├── fastcgi_params
│ ├── fastcgi_params.default
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types #媒体类型
│ ├── mime.types.default
│ ├── nginx.conf #主配置文件
│ ├── nginx.conf.default
│ ├── scgi_params
│ ├── scgi_params.default
│ ├── uwsgi_params
│ ├── uwsgi_params.default #动态服务的接口配置参数
│ └── win-utf
├── fastcgi_temp
├── html #默认站点目录
│ ├── 50x.html
│ └── index.html #默认的首页,不指定,默认加载index.html首页。
├── logs
│ ├── access.log #访问日志
│ ├── error.log #Nginx错误日志
│ └── nginx.pid
├── proxy_temp
├── sbin
│ ├── nginx #启动命令
│ └── nginx.old
├── scgi_temp
└── uwsgi_temp