Nginx是什么?
Nginx是俄罗斯人编写的十分轻量级的HTTP和反向代理服务器。发音:"engine X"
Nginx能干什么?
(1)Http反向代理
Nginx 支持正则表达式以区分静态资源或者动态资源,提供性能稳定,并且能够提供配置灵活的转发功能。 ,其中动态资源可以进一步转发给后端的 Proxy Server, 而静态资源则可以在 Nginx 层面使用本地缓存策略或者重定向(类 CDN)到其他 Nginx 上。
(2)负载均衡
目前Nginx支持以下几种的负载均衡的策略:
1,round-robin(轮询,默认策略)
每个请求轮询发送到不同的服务器上面,如果某台服务宕机了,nginx会自动剔除掉,并把请求给转发到正常的服务器上面。
2,least_conn
最少连接数
3,least_time
最少时间花费,nginx会选择延迟最低的服务器。header表示是计算从后台返回的第一个字节,last_byte计算的是从后台返回的所有数据时间
4,weight
如果服务器性能本身不太均衡,通过配置权重让资源配置更高的机器得到更多的流量
5,ip_hash
使用请求的ip的hash结果分配,这样每个用户会被分配在同一个后台服务器上面
6,fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配
github地址:https://github.com/gnosek/nginx-upstream-fair
7,url_hash(第三方)
基于url的hash进行分配
此外还有一些基于一致性hash和tcp负载的功能,感兴趣的朋友可以自己查阅资料。
(3)web缓存
Nginx可以对不同文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache.
尤其是前端开发的项目中,一些js,css,html,图片,视频,音频等资源可以作为静态资源发布,由nginx缓存以提升响应速度。
(4)其他
此外使用Nginx可以做一个简单的http的下载服务器,只要配置开启目录浏览功能即可实现。还有一些权限拦截功能,也可以使用Nginx来完成。
Nginx的安装
默认的centos是没有nginx的yum源,需要执行下面的命令:
安装完成后,一些默认的目录如下:
一些常用命令:
执行nginx启动之后,访问ip的80端口,如果能看见下面的字样,就代表成功:
最后再介绍一个实用的功能,就是编辑nginx的conf文件默认是黑白颜色的,对视觉极其不友好,所以我们需要安装一个支持nginx的conf文件语法高亮的插件:
最后退出终端,重新登录即可
领取专属 10元无门槛券
私享最新 技术干货