启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第32天,点击查看活动详情
前言
做了好久的WEB开发,做过前端,做过后端,当然也做过服务端,马上周末,突然有小伙伴聊起来Nginx服务器,才发现已经用好久的Nginx,所以就想聊聊哪些我体验过的Nginx使用场景,也请各位大佬多多指点。
使用场景
WEB静态服务器
毋庸置疑,首先想到的是Nginx作为WEB服务器,这也是我第一次使用Nginx的目的,好多人聊到这里会说,相比较其他的WEB服务器,Nginx,速度快,可靠性高,性能好,容易扩展,但是个人体验来说,Nginx给我的第一个感觉是使用简单,对于一个刚刚接触WEB访问,迫切想看到效果的小伙伴来说,安装Nginx的成本并不高,从下载包,到解压配置,到安装没有用到任何复杂的安装操作,并且在网上已经有很多成熟的安装文档,照做即可,简单快捷,安装好之后,把自己的html文件放到服务器指定的目录下[默认是程序目录下的html目录],重启服务,就可以访问了。
WEB后端代理服务器
对于一个使用Python进行Web开发的小伙伴来说有一种痛并快乐的感觉,先说快乐:Python提供了轻量级的WEB服务器,基于项目开发完全没有问题,所以初学的小伙伴更不不用操心服务器的问题,一行Python命令就可以搞定。然后就是痛苦了:也正是因为这个原因,好多使用Python开发的小伙伴对服务器的概念和知识点是缺乏的,直接导致问题就是,当项目需要上线,考虑项目性能的时候一头雾水,进入生产环境要比其他语言的开发者高很多。所以建议(这里也感谢给我这个建议的老大哥)Python web开发的小伙伴一定学习一下nginx,nginx代理指向Python WEB服务器或者是nginx指向uwsgi[gunicorn]在执行PythonWeb服务是太常规不要的操作了,掌握nginx服务器的配置,至少可以保证你的的服务性能正常。
邮件服务器
由于当时的工作需要(参与了一个邮件项目的开发,也感谢这个项目,让我学到了很多),才体验到:Nginx服务器提供邮件服务,可以对邮件代理、用户认证进行配置,同时支持基于SSL/TLS协议的邮件服务的配置。这句话的含义,使用Nginx搭建一个邮件服务器这个案例对我个人来说,不论是计算机网络部分,还是smtp协议部分还是linux基础部分真的提升很大,所以后期会和大家具体分享,嘿嘿嘿。
日志埋点服务器
当时刚刚接触的时候,感觉这个操作好刺激啊,nginx本身可以编写简单的响应规则,比如请求一个地址,然后返回一个json状态,这样达成一个完整的请求响应回路,并且nginx提供了一套完善的日志记录功能,可以根据nginx提供的日志变量加上get,post请求,轻松的记录用户请求的情况,那么这个时候就可以通过日志进行埋点,分析用户行为了,比如一个简单的点赞功能,最简单的实现方法就是在nginx当中配置两个路由(比如/agree?id=1&uid=2,/disagree?id=1&uid=2),然后通过日志统计,很轻松的就可以看到每个数据的点赞情况,当然这里建议大家要学好linux awk命令,真的好用。
WEB代理服务器
作为一个Python工程师,这么可以不编写爬虫,好像现在所有的技术都有一种人为,Python工程师肯定会爬虫,但是爬虫自然逃不过反爬,反爬策略当中很有名的就是ip频率检测和ip拉黑,那么这个时候使用nginx搭建代理服务器实际上是可以解决这个问题的,当然需要有公网ip,好多小伙伴直接购买了代理ip跨过了这个步骤。
高可用负载均衡
一个WEB服务器服务压力太大了,很自然的想到的是再来一个,那么最简单的负载均衡就可以使用nginx集群实现,并且基于openstack技术弹性更好,或者是担心一个服务器稳定性不够的时候,那么就可以nginx+keepalive进行双服务器高可用配置。
结尾
当然,nginx还有很多使用场景和技巧,但是本身使用过的场景也只有上面的几种,还是请各位大佬多多指点吧。