Nginx入门
Nginx
1.简介:高性能的HTTP和反向代理服务器,占有内存少,并发能力强。
Nginx与Tomcat:Nginx可以作为静态页面的web服务器,支持CGI协议的动态语言,perl、php。 不支持Java,与apache构成竞争关系。Nginx更有优势。
Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。
2.功能:
- 正向代理:客户端通过代理服务器发送访问请求
- 反向代理:客户端访问Nginx代理的服务器,访问不到后台服务器
- 负载均衡:请求分发,根据路线,速度分配请求;提高抗风险能力。
- 动静分离:拿出静态资源,减小动态资源数据包,快速上线、修改;页面样式修改方便。
Nginx配置:
- 1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
- 2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
- 3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
- 4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。
- 5、location块:配置请求的路由,以及各种页面的处理情况。
1 | ########### 每个指令必须有分号结束。################# |
几个常见配置项:
- 1.$remote_addr 与 $http_x_forwarded_for 用以记录客户端的ip地址;
- 2.$remote_user :用来记录客户端用户名称;
- 3.$time_local : 用来记录访问时间与时区;
- 4.$request : 用来记录请求的url与http协议;
- 5.$status : 用来记录请求状态;成功是200;
- 6.$body_bytes_s ent :记录发送给客户端文件主体内容大小;
- 7.$http_referer :用来记录从那个页面链接访问过来的;
- 8.$http_user_agent :记录客户端浏览器的相关信息;