三十六、www服务nginx介绍
一、Nginx介绍
相对于LAMP经典组合而言,LNMP是近几年来流行的组合。(linux+nginx+mysql+php)
Nginx是一个开源www服务软件,是俄罗斯人开发的,本身是一款静态www软件(解析html,js,css,jpg等),大小只有780K左右。
特点:静态小文件高并发(同时处理连接数多,3W并发,10个线程,150M内存),占用的资源很少,使用平台是unix、linux、windows都可以。
nginx服务从大的方面的功能:
a.www web服务器 :http服务 端口为 80
b.负载均衡(反向代理)
c.web cache(web缓存)
nginx优点:1)高并发(静态小文件)
2 )占用资源少(apache占用资源多)
3)功能种类比较多(web、cache、proxy) ,但是每一个功能都不是完善的
4)nginx配合动态服务和apache是有区别的
5)利用nginx可以对IP限速,可以限制连接数。
6) 支持epoll模型,使得nginx支持高并发。
7)配置简单灵活
二、LAMP和LNMP的框架原理
nginx配合动态服务和apache是有区别的,如上图,apache中,如果是动态数据请求,还是调用的apache,php是apache的一个模块;如果是nginx,如下,在用户请求动态数据的时候,nginx会检索相应的扩展名是.PHP的话,通过自身的fastcgi_pass文件调用去访问php所在机器的9000端口服务,如图所示,此服务是PHP FCGI服务。
三、nginx的应用场景
1.静态服务器(图片,视频服务,html,js,css,flv等),另一个是lighttpd
2.动态服务器 ,就是nginx+fastcgi的方式运行php,jsp (如上图,nginx可以支持大并发,但是架不住FCGI服务或者MySQL后端不支持大并发,保守估计也就500-2000之间,如果sql很烂,3-5条就挂了)
3.反向代理,负载均衡(F5或者A10)。nginx主动发起一个请求,代替客户端发起一个请求(反向代理),和lvs的转发(直接抛给后面)有区别的。
4.缓存服务:varnish squid等
nginx在处理大文件(10M以上)、动态文件时,优势不是很明显。
四、nginx虚机主机:1)基于域名 (外部网站) 2)基于端口 (公司内部网站) 3)基于IP(不完善)
一个server标签就是一个虚拟主机。
五、安装nginx(编译安装步骤)
1.在安装前,需要安装nginx所需的pcre库,中文pcre兼容正则表达式,安装pcre,是为了支持伪静态HTTP Rewrite,yum install pcre pcre-devel -y
2.在安装前,需要安装openssl,防止报错:yum install openssl openssl-devel -y (nginx支持https的时候用到)
3.centos8下安装这个 wget http://nginx.org/download/nginx-1.17.6.tar.gz
3.创建用户:
[root@djw1 ~]# useradd nginx -M -s /bin/nologin
4.因为一般nginx把能装的核心都装了,所以这边只是简单的配置
[root@djw1 tools]# tar xf nginx-1.6.2.tar.gz
[root@djw1 tools]# cd nginx-1.6.2
./configure \
--prefix=/application/nginx1.6.2 \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_stub_status_module
make && make install
创建链接:[root@djw1 application]# ln -s /application/nginx1.6.2/ /application/nginx
5.启动nginx:/application/nginx/sbin/nginx -t /application/nginx/sbin/nginx
[root@djw1 application]# netstat -lntup |grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4038/nginx
[root@djw1 application]# lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 4038 root 6u IPv4 16825 0t0 TCP *:http (LISTEN)
nginx 4039 nginx 6u IPv4 16825 0t0 TCP *:http (LISTEN)
访问:
如果有错,可以看下 cat /application/nginx/logs/error.log