Nginx详解

Posted jerry0070

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx详解相关的知识,希望对你有一定的参考价值。

1.1nginx的特点
nginx与Apache相比有很多改进之处。比如:
在性能上,Nginx占用的系统资源更少,能支持更多的并发连接(特别是静态小文件场景下),达到更高的访问效率;
在功能上,Nginx不但是一个优秀的Web服务软件,还可以作为反向代理负载均衡及缓存服务使用;
在安装配置上,Nginx更为方便,简单,灵活,可以说,Nginx是一个极具发展潜力的Web服务软件。
1.2Nginx是什么
nginx是一个开源的,支持高性能,高并发的www服务和代理服务软件。
nginx因具有高并发(特别是静态资源),占用系统资源少等特性,且功能丰富而逐渐流行起来。
nginx不但是一个优秀Web服务软件,还具有反向代理负载均衡功能和缓存服务功能,与lvs负载均衡及Haproxy等专业代理软件相比,Nginx部署起来更为简单,方便;在缓存功能方面,它又类似于Squid等专业的缓存服务软件。
1.3
Nginx的重要面试知识
Nginx的重要特性
支持高并发:能支持几万并发连接(特别是静态小文件业务环境)
资源消耗少:在3万并发连接下,开启10个Nginx线程消耗的内存不到200MB,一个进程里最多可以有65536根线程。,进程开辟出                  来的空间,线程是共享的。
可以做HTTP反向代理及加速缓存,即负载均衡功能,内置对RS节点服务器健康检查功能,这相当于专业的Haproxy软件或LVS的功能
具备Squid等专业缓存软件等的缓存功能。
支持异步网络I/O事件模型epoll(linux2.6+)。
1.4Nginx、Lighttpd、Apache性能对比
处理静态小文件时(小于1M的文件),Nginx、Lighttpd比Apache更有优势。Nginx处理小文件的能力很明显,Lighttpd综合能力最强。
处理动态数据时三者差距不大(大文件指的是1-10M的文件),但是Apache更具有优势。
实际上Apache和nginx不处理动态文件,都是交给php处理的。所以,Apache交给php处理的速度快于nginx。
----------------Nginx和Apache对比
Apache是用进程来接待用户的,对资源的占用多。同步阻塞i/o模型。
nginx是用多线程接待用户的。对资源的占用少。
-------------什么是静态数据?不人工参与就无法改变的数据(图片视频xxx.html)。动态数据:需要从mysql里取的。
技术分享图片

同步I/O模型(select)和异步I/O模型(epoll)对比:

技术分享图片

(注释:灰色部分代表的是I/O阻塞,红、黄、蓝代表的是进程;epoll单线程可以同时干多件事,不会有i/o阻塞,一件事缓存的时候会切换到另一件事,缓存好了又会切换回来。)

1.5Nginx的编译安装部署

将源码包扔到shell里面

挂载光盘

安装支持包:yum -y install pcre-devel openssl-devel

解包:tar xf nginx-1.10.2.tar.gz -C /usr/src

到包里面:cd /usr/src/nginx-1.10.2/

创建程序用户:useradd -s /sbin/nologin -M www

开始编译:./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module   (之前要安装gcc   gcc-c++  make  outmake)(和Apache不同的是,这个编译的时候可以加模块名--with后面的就是模块名)

编译和安装:make && make install(完了以后echo $?查看)

------------------------------------------------------安装完成------------------------------------------------------------------

cd /usr/local/nginx/     ----ls以后有4个目录,conf配置目录,logs日志,sbin命令,html网页目录

cd conf        ----->pwd查看路径,ls查看内容有很多

技术分享图片

开始配置nginx:egrep -v "#|^$" nginx.conf.default > nginx.conf  (cat nginx.conf | wc -l 后22行)

 修改配置文件:vim nginx.conf       ---附备注图

技术分享图片

 工作中服务器是几核的就配几;线程数是20倍(例:1024--20480);域名可以修改(例:server_ name www.yunjisuan.com)

 ------------------------------------配置文件配置好了-------------------------------

绝对路径启动进程:/usr/local/nginx/sbin/nginx   (ss -antup | grep 80查看是否启动)

系统防火墙要关:(service iptables stop)

 返回上级目录:nginx目录,ls查看以后多了很多临时文件。

开始做网页:cd html目录里,有两个文件,删除这两个文件。

echo "`hostname -I` www.yunjisuan.com" > index.html    

做一个映射文件:echo "`hostname -I` www.yunjisuan.com" >> /etc/hosts

模拟浏览器访问:curl www.yunjisuan.com      ---出ip和域名代表成功

以Windows方式访问:打开我的电脑--c盘--Windows--system32--drivers--etc--hosts--记事本打开修改;在末尾输入ip和域名。(或者复制到桌面修改--再扔回去,替换)???--用浏览器打开输入www.yunjisuan.com就可以了。

------------------------------------------现在网站就搭好了-----------------------------------------------------

 补充:tomcat主要运行java的web容器,

    Apache和nginx主要是处理静态数据的web容器。

    resin大企业用的。

    weblogic主要是政府用。

 nginx有三大功能特性:

    作为web服务器   作为反代理任务    作为缓存服务器

 虚拟多网站的构建方式有三种:

    1.基于不同端口的虚拟多网站

    2.基于不同域名的虚拟网站

    3.基于不同ip的虚拟网站

 

 

 

 

 

 








以上是关于Nginx详解的主要内容,如果未能解决你的问题,请参考以下文章

Nginx教程 Nginx配置文件详解

Nginx:Nginx配置文件详解

nginx配置文件详解

Nginx的安装及配置详解

Nginx的安装及配置详解

nginx配置文件详解