Nginx
我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务。
Web 网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的 请求后才会响应,最终用于提供服务程序的 Web 服务器会通过 HTTP(超文本传输协议)或 HTTPS(安全超文本传输协议)把请求的内容传送给用户。
目前能够提供 Web 网络服务的程序有 IIS、Nginx 和 Apache 等。其中,IIS(Internet Information Services,互联网信息服务)是 Windows 系统中默认的 Web 服务程序
2004 年 10 月 4 日,为俄罗斯知名门户站点而开发的 Web 服务程序 Nginx 横空出世。 Nginx 程序作为一款轻量级的网站服务软件,因其稳定性和丰富的功能而快速占领服务器市 场,但 Nginx 最被认可的还当是系统资源消耗低且并发能力强,因此得到了国内诸如新浪、 网易、腾讯等门户站的青睐。
#
强大之处- 支持高并发,能支持几万并发连接
- 资源消耗少,在3万并发连接下开启10个nginx线程消耗的内存不到200M
- 可以做http反向代理和负载均衡
- 支持异步网络i/o事件模型epoll
#
TengineTengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。
Nginx/Tenginx
官方nginx/淘宝nginx
这两个一模一样,淘宝的nginx官方文档更加详细
注意编译软件之前还是要解决系统的开发环境,例如如下:
#
安装启动进入淘宝nginx官网,下载源代码,进行编译安装
解压缩
进入源码目录,指定安装目录
编译、编译安装,生成nginx的可执行命令目录
安装完成后,会生成/opt/tngx232/文件夹,nginx可以使用的配置都在这里了
添加nginx到PATH中,可以快捷执行命令
首次启动nginx,注意要关闭防火墙
默认访问nginx的首页的站点url是
#
nginx的配置文件注释#
nginx的web站点功能修改nginx的首页内容
进入html目录下,找到index.html文件,默认读取的是这个文件
#
nginx的多站点功能在配置文件nginx.conf
下的http下的server{}下再添加一个server{}
#
nginx的404页面优化在server下添加这个配置,当用户请求出错,出现404的时候,就返回 root定义的目录去寻找404.html文件
#
nginx的访问日志日志功能对每个用户访问网站的日志信息都记录到指定的日志文件里,开发运维人员可以分析用户的浏览器行为
此功能由ngx_http_log_module模块负责
修改nginx.conf
在http{}代码块中,打开注释,即可查看日志
日志功能参数 | 描述 |
---|---|
$request | 对应请求信息、url "GET /favicon.ico HTTP/1.1" |
$time_local | 发送时间 对应[14/Aug/2018:18:46:52 +0800] |
$status | 状态码 |
$http_referer | url跳转、是否是其他url过来的 |
$remote_user | 远程用户,没有就是 "-" |
$remote_addr | 记录客户端ip |
$http_user_agent | 客户端身份信息 nginx可判断, 如若是手机浏览器就转发移动端页面给用户查看 ...等等 |
$body_bytes_sent | 请求体的大小 |
$http_x_forwarded_for | 记录客户端的来源真实ip |
#
nginx正向代理#
反向代理这里用nginx的多站点功能模拟出两台服务器
第一个虚拟主机的配置,作用是反向代理
修改nginx.conf
如下
第二个虚拟主机,作用是web站点功能,资源服务器,提供页面的
修改nginx.conf
如下
#
nginx负载均衡Web服务器,直接面向用户,往往要承载大量并发请求,单台服务器难以负荷
我使用多台WEB服务器组成集群,前端使用Nginx负载均衡,将请求分散的打到我们的后端服务器集群中,实现负载的分发
那么会大大提升系统的吞吐率、请求性能、高容灾
这里也是用nginx多站点模拟
用upstream
关键词定义负载均衡池,写入资源服务器的地址
第一个虚拟主机的配置,作用是反向代理
第二台虚拟主机,作用是web站点功能,资源服务器,提供页面的
第三个server{}标签的作用,同样是返回资源页面,查看负载均衡效果,95端口