目录
Nginx
Nginx介绍
Nginx ("engine x") 是一个轻量级、高性能的WEB服务器软件和反向代理服务器。
Nginx以事件驱动(epoll)的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。但是Nginx并不支持cgi方式运行,原因是可以减少因此带来的一些程序上的漏洞。所以必须使用FastCGI方式来执行PHP程序。
1、WEB服务器:这是应用比较多的场景,配置虚拟主机提供HTTP WEB服务。可以先通过动态/静态内容分离,而后为静态内容(html/css/js/图片等)提供HTTP访问功能;而动态内容可以整合代理模块,代理给上游服务器,来支持对外部程序的直接调用或者解析,如FastCGI支持PHP。
2、反向代理服务器:这是应用非常多的场景,为后端服务器代理。接收客户端请求,根据负载均衡策略转发给后端多个上游服务器处理;然后再等待后端服务器返回请求响应,接收到后再返回给请求的客户端。
Nginx官网
Nginx官网:http://nginx.org
Nginx官方文档:http://nginx.org/en/docs/
选择自己需要的版本
nginx基本架构
1、一个master进程生成多个worker子进程(每个进程只有一个线程),一个worker响应多个用户请求;
2、非阻塞、IO复用、事件驱动:select,poll, epoll, kqueue,/dev/poll;
3、支持sendfile,sendfile64;
4、支持文件AIO(异步I/O);
5、支持mmap;
6、灵活的文件配置;
7、占用内存小:10,000个非活动HTTP保持连接占用大约2.5M内存。
nginx功能特性
基本功能
实现与服务静态文件(静态资源的web服务器),能缓存打开的文件描述符;
反向代理服务器,缓存、负载均衡、健康状态检测;
支持FastCGI;
模块化机制,非DSO机制,支持多种过滤器gzip,SSI和图像的模块完成图形大小调整等;
支持SSL;
扩展功能
基于名称和IP做虚拟主机;
支持keeplive;
支持平滑配置更新或程序版本升级;
定制访问日志,支持使用日志缓存以提高性能;
支持URL rewrite;
支持路径别名;
支持基于IP及用户的认证;
支持速率限制,并发数限制等;
隐藏nginx服务器版本号
上传nginx软件包并解压
tar -zxvf nginx-1.10.3.tar.gz -C /usr/local/src/
Vi /usr/local/src/nginx-1.10.3/src/core/nginx.h
修改版本号为9.9.9 修改服务器名称
vi src/http/ngx_http_header_filter_module.c
修改HTTP头信息中的server字段,防止回显具体版本号
vi src/http/ngx_http_special_response.c
这个文件定义了http错误码的返回,有时候我们页面程序出现错误,Nginx会代我们返回相应的错误代码,回显的时候,会带上nginx和版本号,我们把它隐藏起来。
安装nginx依赖包
[root@wzy]# yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel