Nginx虽然小,可是对开发来讲开发起来并不简单,是经过epoll模型实现的异步Webhtml
Nginx特色:方便,简单灵活,占用系统资源少,对静态小文件处理好的Web服务软件linux
1.Nginx是一个开源的,支持高并发的www服务和代理服务nginx
2.nginx具备高并发,特别是对静态网页,占用系统资源少等特性web
3.nginx不可是一个优秀的web服务软件,还具备反向代理负载均衡和缓存的服务功能。nginx部署及其方便。apache
nginx用户是epoll模型(异步IO非阻塞模型),apache用的是select模型(同步IO阻塞模型)windows
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这两个网页(若是这两个网页也没有,那就表示找不到了)缓存
一个web服务器搭建多个网站有三种方法:
1.基于不一样域名的虚拟网站(工做中经常使用)
2.基于不一样监听端口的虚拟网站(能够实现用IP去访问多个域名)
3.基于不一样IP的虚拟网站安全
1.先到配置文件中修改
2.从新启动服务 /usr/local/nginx/sbin/nginx -s reload
平滑重启,不影响正在链接的用户
3.根据配置文件中的模块去建立网页文件,而且添加网页内容
4.增长映射文件内容
5.用curl去检测 curl www.yunjisuan.com
服务器
若是一个IP多个域名,客户机用域名去访问,服务机就能拿到它想要的,那么服务端是怎么知道客户端的想要去访问的哪一个域名呢?
web服务器能够在用户发送过来的报文中的头部能够查看用户想看的具体域名
curl -v yunjisuan.com
查看报文内容
在同一个IP多个域名的状况下,用IP去访问网站默认给的是第一个虚拟网站,可是有时候是不能让他去访问的为何??
由于DNS映射的过程有一个追踪的过程,若是正常输入域名解析IP,DNS提供服务的公司先要追查你的位置,若是是合法的用户,才能解析成功而且正常访问。而黑客绝对不会走正常解析过程,确定是用IP地址(经过IP地址访问不经过DNS解析)过去的。所以要想个办法让非法用户不能默认访问第一个网站,因此要把网站作成防黑的
Tengine是淘宝开源Nginx的分支,官方站点为http://tengine.taobao.org/
如:配置文件中默认的www.yunjisuan.com首页是html下的index.html,然而这个index.html网页文件却不存在,当用户在网页上输入域名进行访问时,就会出现403报错。
缘由:当用户输入www.yunjisuan.com访问时,浏览器会自动把换成http://www.yunjisuan.com/,而它又找不到首页网页文件,因此就默认给用户看/下的全部文件,这样的话会被nginx的安全机制拒绝,因此就会出现403报错
nginx默认的安全机制是开启的,而apache默认的安全机制是关闭的
(1)特殊的403报错
(2)访问的网页文件权限不够(例如:设置的程序用户为www,而网页文件权限为700,属主、属组都为root,这样的话www用户是没有办法进行访问的,因此就会致使403错误) (3)访问的网页文件所在的目录没有x权限(如:程序用户为www,网页文件所在的目录为www目录,而www目录权限为744,属主、属组都为root,这样用户对目录没有可执行权限,就进不去目录。因此就致使403错误