关于Nginx你还在背诵着培训班中教给你的内容么?面试的时候很多项目都说使用过Nginx,但是当面试官问你Nginx的原理的时候,你还在手足无错么?如果有,那么这篇文章我送给大家,让你面试回答Nginx的的时候不再慌张,不需要再去背诵那些内容了,各位看官准备好了么?
什么是Nginx
我们来看一下这个百度百科给出的解释:
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
以上的内容是百度百科给出的解释,这个可是已经算的上是很全了,总结下来就几点内容
- HTTP和反向代理web服务器
- IMAP/POP3/SMTP服务
Nginx的优点和作用
- Nginx使用基于事件驱动架构,使得其可以支持数以百万级别的TCP连接
- 高度的模块化和自由软件许可证是的第三方模块层出不穷
- Nginx是一个跨平台服务器,可以运行在Linux,Windows,FreeBSD,Solaris, AIX,Mac OS等操作系统上
- 这些优秀的设计带来的极大的稳定性
Nginx的代理
关于代理
说到代理,首先我们要明确一个概念,所谓代理就是一个代表、一个渠道;
此时就设计到两个角色,一个是被代理角色,一个是目标角色,被代理角色通过这个代理访问目标角色完成一些任务的过程称为代理操作过程;如同生活中的专卖店~客人到adidas专卖店买了一双鞋,这个专卖店就是代理,被代理角色就是adidas厂家,目标角色就是用户。
而代理又分为了2种,一种是正向代理,一种是反向代理
正向代理
举一个经典的例子,我们访问国外的网站的时候,是没有办法进行访问的,这时候是不是就得需要一个代理服务器,我们把请求发给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们!
上述这样的代理模式称为正向代理,正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。
正向代理的用途
- 访问原来无法访问的资源,如Google
- 可以做缓存,加速访问资源
- 对客户端访问授权,上网进行认证
- 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
反向代理
我们说完了正向代理之后,我们再来看一下反向代理,最经典的应用,分布式
通过部署多台服务器来解决访问人数限制的问题;某宝网站中大部分功能也是直接使用Nginx进行反向代理实现的,并且通过封装Nginx和其他的组件之后起了个高大上的名字:Tengine。
这其实就是反向代理的一个经典应用。
反向代理的用途
- 保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网
- 负载均衡,通过反向代理服务器来优化网站的负载
说完了代理,我们就该来看面试中最经常问到的必须回答的内容。
你在工作中是怎么对Nginx进行配置的
配置文件详解:
- nginx.conf———————-nginx的基本配置文件
- mime.types———————-MIME类型关联的扩展文件
- fastcgi.conf———————-与fastcgi相关的配置
- proxy.conf———————-与proxy相关的配置
- sites.conf———————-配置nginx提供的网站,包括虚拟主机
nginx.conf配置文件主要分成四个部分:
- main,全局设置,影响其它部分所有设置
- server,主机服务相关设置,主要用于指定虚拟主机域名、IP和端口
- location,URL匹配特定位置后的设置,反向代理、内容篡改相关设置
- upstream,上游服务器设置,负载均衡相关配置
他们之间的关系式:server继承main,location继承server;upstream既不会继承指令也不会被继承。
通用配置如下,
1 |
|
上面的配置文件不需要你每一行都看过来,你需要注意的地方如下:
1 |
|
有时候面试官就会问你,你在使用Nginx的时候做过哪些配置,在配置文件中改动过那里,都有什么样子的作用,把列出来的这一行代码解释给面试官听,那么至少你在面试官面前,已经把Nginx的比较重要的点解释了一下了,这样也能增加咱们入职的一些胜算。
至于如何安装Nginx,这个有请查阅公众号之前的文章,有惊喜呦。
我是懿,一个正在被打击还在努力前进的码农。欢迎大家关注我们的公众号,加入我们的知识星球,我们在知识星球中等着你的加入。