Nginx虽然小,但是对开发来说开发起来并不简单,是通过epoll模型实现的异步Web
Nginx特点:方便,简单灵活,占用系统资源少,对静态小文件处理好的Web服务软件
- Nginx特性:
- 1.支持高并发(能支持几万台并发连接,特别是静态小文件业务环境)
2.资源消耗少(在3万台并发连接下,开启10个Nginx线程消耗的内存不到200MB)
Nginx概念
1.Nginx是一个开源的,支持高并发的www服务和代理服务
2.nginx具有高并发,特别是对静态网页,占用系统资源少等特性
3.nginx不但是一个优秀的web服务软件,还具有反向代理负载均衡和缓存的服务功能。nginx部署及其方便。
在与apache对比中,为什么Nginx的总体性能高?
nginx用户是epoll模型(异步IO非阻塞模型),apache用的是select模型(同步IO阻塞模型)
编译安装
1.先安装支持包 yum -y install pcre-devel openssl-devel
2.解压编译包到/usr/src tar xf 安装包 -C /usr/src
3.创建程序用户 useradd -s /sbin/nologin -M www
4.进行编译安装 cd /usr/src/nginx
./configure --user=用户名 --group=组 --prefix=指定目录(如:/usr/local/nginx) --with-http_stub_status_module --with-http_ssl_module && make && make install
修改环境变量(做软连接) ln -s /usr/local/nginx/sbin/* /usr/local/bin/
5.
6.从备份的配置文件中去了#号和空行重定向到配置文件中
精简Nginx配置文件(去了报错的行)
首页文件表示如果用户只输入域名,不输入URi,就默认去找index.html和index.htm这两个网页(如果这两个网页也没有,那就表示找不到了)
Nginx
- 用绝对路径可以启动服务脚本
- 2.在用nginx时系统防火墙要关闭
- 3 curl这个命令是模拟访问的
- 4用户在访问网站时不能看到根上边的网页文件
- windows也是在访问linux中的网页时需要修改映射文件,windows映射文件(C盘/windows/system32/drives/etc/hosts)
搭建网页过程
一个web服务器搭建多个网站有三种方法:
1.基于不同域名的虚拟网站(工作中常用)
2.基于不同监听端口的虚拟网站(可以实现用IP去访问多个域名)
3.基于不同IP的虚拟网站
1.先到配置文件中修改
2.重新启动服务 /usr/local/nginx/sbin/nginx -s reload
平滑重启,不影响正在连接的用户
3.根据配置文件中的模块去创建网页文件,并且添加网页内容
4.增加映射文件内容
5.用curl去检测 curl www.yunjisuan.com
问题
- 如果一个IP去搭建多个网站,那么用域名去访问就能访问得到他想要的网页文件,而用IP去访问得到的是配置文件中的第一个的模块网页文件(优先级是从上往下)
-
如果一个IP多个域名,客户机用域名去访问,服务机就能拿到它想要的,那么服务端是怎么知道客户端的想要去访问的哪个域名呢?
web服务器可以在用户发送过来的报文中的头部可以查看用户想看的具体域名
curl -v yunjisuan.com
查看报文内容 -
在同一个IP多个域名的情况下,用IP去访问网站默认给的是第一个虚拟网站,但是有时候是不能让他去访问的为什么??
因为DNS映射的过程有一个追踪的过程,如果正常输入域名解析IP,DNS提供服务的公司先要追查你的位置,如果是合法的用户,才能解析成功并且正常访问。而黑客绝对不会走正常解析过程,肯定是用IP地址(通过IP地址访问不通过DNS解析)过去的。因此要想个办法让非法用户不能默认访问第一个网站,所以要把网站做成防黑的
- 为什么服务端知道用户端用的哪个浏览器在上网? 因为用户发送的访问报文中的头部里有
相关问题及解答
1.tengine和nginx是什么关系
Tengine是淘宝开源Nginx的分支,官方站点为http://tengine.taobao.org/
2.特殊的403报错是什么情况?
如:配置文件中默认的www.yunjisuan.com首页是html下的index.html,然而这个index.html网页文件却不存在,当用户在网页上输入域名进行访问时,就会出现403报错。
原因:当用户输入www.yunjisuan.com访问时,浏览器会自动把换成http://www.yunjisuan.com/,而它又找不到首页网页文件,所以就默认给用户看/下的所有文件,这样的话会被nginx的安全机制拒绝,所以就会出现403报错
nginx默认的安全机制是开启的,而apache默认的安全机制是关闭的
3.可能造成403错误的原因:
(1)特殊的403报错
(2)访问的网页文件权限不够(例如:设置的程序用户为www,而网页文件权限为700,属主、属组都为root,这样的话www用户是没有办法进行访问的,所以就会导致403错误)
(3)访问的网页文件所在的目录没有x权限(如:程序用户为www,网页文件所在的目录为www目录,而www目录权限为744,属主、属组都为root,这样用户对目录没有可执行权限,就进不去目录。所以就导致403错误