Nginx与Apache相比有很多改进之处。比如:
nginx因具有高并发(特别是静态资源),占用系统资源少等特性,且功能丰富而逐渐流行起来。
nginx不但是一个优秀Web服务软件,还具有反向代理负载均衡功能和缓存服务功能,与lvs负载均衡及Haproxy等专业代理软件相比,Nginx部署起来更为简单,方便;在缓存功能方面,它又类似于Squid等专业的缓存服务软件。
资源消耗少:在3万并发连接下,开启10个Nginx线程消耗的内存不到200MB,一个进程里最多可以有65536根线程。,进程开辟出 来的空间,线程是共享的。
可以做HTTP反向代理及加速缓存,即负载均衡功能,内置对RS节点服务器健康检查功能,这相当于专业的Haproxy软件或LVS的功能
具备Squid等专业缓存软件等的缓存功能。
支持异步网络I/O事件模型epoll(linux2.6+)。
同步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查看是否启动)
(注释:重启是/usr/local/nginx/sbin/nginx -s reload;测试是否成功/usr/local/nginx/sbin/nginx -t)
系统防火墙要关:(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的虚拟网站