“nginx”是什么意思?nginx 配置详解是怎么样的
本文目录
- “nginx”是什么意思
- nginx 配置详解是怎么样的
- nginx是什么意思
- nginx 配置详解是什么
- 为什么选择Nginx
- nginx能自动创建log文件吗
- nginx offsetof怎么实现的
- nginx如何配置
- F5 Networks为何决定收购Nginx
- Nginx到底能做什么
“nginx”是什么意思
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
反向代理的优势:
1、加快了对内部服务器的访问速度
在内部服务器前放置两台反向代理服务器,分别连接到教育网和公网,这样公网用户就可以直接通过公网线路访问学校服务器,从而避开了公网和教育网之间拥挤的链路。同时反向代理服务器的缓存功能也加快了用户的访问速度。
2、节约了有限的IP资源
校园网内部服务器除使用教育网地址外,也会采用公网的IP地址对外提供服务,公网分配的IP地址数目是有限的,如果每个服务器有分配-个公网地址,那是不可能的,通过反向代理技术很好地解决了IP地址不足的问题。
nginx 配置详解是怎么样的
Nginx配置文件主要分为四部分:main(全局配置)、server(主机设置)、upstream(上游服务器设置)和location(URL匹配特定位置后的设置)每部分包含若干个指令。
Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。
并且支持很多第三方的模块扩展,Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。
nginx 配置注意事项
Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理。
events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
nginx是什么意思
意思是一种服务器。
Nginx (engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
介绍
Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行。
其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
Nginx可以在大多数UnixLinux OS上编译运行,并有Windows移植版。Nginx的1.4.0稳定版已经于2013年4月24日发布,一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。
nginx 配置详解是什么
Nginx配置文件详解:
Nginx的主配置文件是nginx.conf,这个配置文件一共由三部分组成,分别为全局块、events块和
为什么选择Nginx
Nginx是一个高性能的Web和反向代理服务器,它具有有很多非常优越的特性:作为Web服务器:相比Apache,Nginx使用更少的资源,支持更多的并发连接,体现更高的效率,这点使Nginx尤其受到虚拟主机提供商的欢迎。能够支持高达50,000个并发连接数的响应,感谢Nginx 为我们选择了epoll and kqueue作为开发模型.作为负载均衡服务器:Nginx既可以在内部直接支持Rails和PHP,也可以支持作为HTTP代理服务器对外进行服务。Nginx用C编写, 不论是系统资源开销还是CPU使用效率都比Perlbal要好的多。作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器,Last.fm描述了成功并且美妙的使用经验。Nginx安装非常的简单,配置文件非常简洁,Bugs非常少的服务器:Nginx启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下进行软件版本的升级。
nginx能自动创建log文件吗
nginx自动切割访问日志 Web 访问日志 (access_log) 记录了所有外部客户端对Web服务器的访问行为,包含了客户端IP,访问日期,访问的URL资源,服务器返回的HTTP状态码等重要信息。一条典型的Web访问日志如下:112.97.37.90 - - "GET / HTTP/1.1" 301 5 "-" "Mozilla/5.0 (Linux; U; Android 2.3.6; zh-cn; Lenovo A326 Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MicroMessenger/4.5.1.259" - 规划:1、 要解决问题:当网站访问量大后,日志数据就会很多,如果全部写到一个日志文件中去,文件会变得越来越大。文件大速度就会慢下来,比如一个文件几百兆。写入日志的时候,会影响操作速度。另外,如果我想看看访问日志,一个几百兆的文件,下载下来打开也很慢。使用第三方免费的日志分析工具-日志宝,可以上传nginx、apache、iis的日志文件,它们帮助分析网站安全方面。毕竟专攻,更加专业。日志宝对上传的文件也是做了大小限制的,不超过50m。 2、nignx没有自动分开文件存储日志的机制。由于nginx它不会帮你自动分文件保存。所以,需要自己编写脚本来实现。 shell脚本文件nginx_log_division.sh内容如下: # /bin/bashlogs_path="/data/wwwlogs/"#以前的日志文件。log_name="xxx.log" pid_path="/usr/local/nginx/logs/nginx.pid" mv ${logs_path}${log_name} ${logs_path}${log_name}_$(date --date="LAST WEEK" +"%Y-%m-d").log kill -USR1 `cat ${pid_path}` 上面shell脚本的原理是:先把以前的日志文件移动重命名成一个,目的是就是备份。按照上个周一的本日来命名,运行脚本的时候时间点是”2013-09-16”,那么生成文件名称是”xxx.log_ 20130909.log”。在没有执行kill -USR1 `cat ${pid_path}`之前,即便已经对文件执行了mv命令而改变了文件名称,nginx还是会向新命名的文件” xxx.log_ 20130909”照常写入日志数据的。原因在于:linux系统中,内核是根据文件描述符来找文件的。 ----------------对linux文件描述符的理解 文件描述符是linux内核为每个打开的文件命名的一个整数标识。linux内核为每一个进程生成(或者说维护)一个”文件描述符表”,这个文件描述符表记录的是“此进程所打开的文件(进行标识)”。在这里的环境中,nginx就是一个运行中的进程,这个进程早就打开了一个日志文件,在文件描述符表是记录了文件的。即便日志文件的路径改变了,但是还是能够找到(根据文件描述符表可以定位)。 ----------------------------------------------当执行命令“kill -USR1 `cat ${pid_path}`”的时候,nginx.pid文件中保存的其实就是一个数字(自己可以打开看一下,我这里是894),nginx 将其主进程的 pid (进程号)写入到了nginx.pid 文件中,所以可以通过cat命令直接拿到其主进程号,直接操作指定的进程号。 kill -USR1 `cat ${pid_path}` 就等同于kill –USR1 894 #指定发信号(USR1)信号给这个进程编号。 在linux系统中,linux是通过信号与”正在运行的进程”进行通信的。linux系统中,也很多预定义好的信号,像SIGHUP。USR1是用户自定义信号。可以理解为:进程自己定义接到这个信号该干嘛(也就是进程编写者自己确定收到这个信号干嘛还是什么都不做都行,完全交给开发人员自己决定)。而在nginx中,它自己编写了代码处理当我接到USR1信号的时候,让nginx重新打开日志文件。具体原理如下:1、nginx 的主进程收到USR1信号,会重新打开日志文件(以nginx配置文件中的日志名称命名,就是配置文件中access_log项所设置的值,如果文件不存在,会自动创建一个新的文件xxx.log)。 2、然后把日志文件的拥有者改为“工作进程(worker进程)”,目的是让worker进程就具备了对日志文件的读写权限(master和worker通常以不同用户运行,所以需要改变拥有者)。 3、nginx主进程会关闭重名的日志文件(也就是刚才使用mv命令重命名成xxx.log_ 20130909.log的文件),并通知工作进程使用新打开的日志文件(刚才主进程打开的文件xxx.log)。具体实现上更细化点就是,主进程把USR1信号发给worker,worker接到这个信号后,会重新打开日志文件(也就是配置文件中约定的xxx.log)===================================定时执行脚本
nginx offsetof怎么实现的
这里定义的是,一个宏,用宏来实现函数的功能。如果你在下面调用了offsetof(2,4);他就等于(size_t)&(((2*)0)-》4) ;宏定义的这样方式,编译阶段不对函数的参数进行检查,所以这样是一种很不好的用法,
nginx如何配置
nginx是一款高性能的web和反向代理服务器,这里默认题主已经安装好了nginx下面直接讲解如何配置:
进入到安装目录:
cd /usr/local/nginx/conf
修改前最好备份下:
cp nginx.conf nginx.conf.20181121
修改配置文件
vi nginx.conf
以下是完整的配置截图
解释:
我这里模拟的是两个目录,你可以将你的项目分别放到这2个目录进行访问。
我这里是有域名的,一级和二级域名,将你事先写好的2个项目,或则只是一个简单的index.html放入到上面对应的目录下,/var/www/html2或则/var/www/app
接下来只需要重启即可;
/usr/local/nginx/sbin/nginx -s reload
然后再您的浏览器里面直接输入域名即可访问(
F5 Networks为何决定收购Nginx
nginx在大量应用场景里能取代F5的负载均衡,而且有大量的技术文章供参考,一般的运维人员通过阅读这些技术文章部署nginx能满足中小型网站需求,在nginx普及之前,哪怕网站规模不大,要做到这样的负载均衡的效果,还真的得买F5。
我见过F5,F5的配置虽然是web界面,但相对有大量资料的支撑的nginx,ngnix的更容易被普通运维所掌握,当然这不是主要原因了,主要原因当然还是F5的价格了,免费的那么好用,那么多人用。
nginx影响到F5还有一个因素,就是基于x86软件实现的网络交换系统崛起,在2000年前后,要实现这样高并发的负载均衡器一般都得靠专有的硬件,但现象是随着x86CPU和现代操作系统的进化发生了变化,人们逐渐发现在x86CPU上也能勉强达到过去专有硬件才能实现的路由交换,防火墙,负载均衡的容量,于是就出现了一些代替基于硬件的网络产品的软件实现,nginx就是其中之一。
Nginx到底能做什么
nginx可以作为web服务器、缓存服务器、HTTP代理服务器、负载均衡服务器。
什么是nginx
Nginx(发音为“ engine-x”)是一种开源软件,最初被设计为高性能Web服务器。今天,Nginx可以完成其他一些任务,包括缓存服务器,反向代理服务器,负载平衡器等等
web服务器
目前主流使用的web服务器软件,主要有apache、nginx、tomcat、iis等,在全球范围内来说,Apache是现有的最流行的Web服务器,但是在高流量网站中最流行的Web服务器确实nginx,在我国不管是大中小互联网公司,主流选择的也是nginx作为web服务器软件。一份来自Netcraft的调查中,发现Apache的使用率为31.54%,Nginx的使用率为26.20%。
HTTP代理服务器
HTTP代理,分两类:一种的正向代理,一种是反向代理。
- 反向代理。就是真实服务器不直接访问,而是通过代理进行访问,代理服务器和真实服务器是在同一个网络环境。对于访问来说是无感的,代理服务器对于访问者来说就是提供服务的服务器。基于nginx的反向代理,可以实现分布式(不同子域名访问不同的服务后端节点)和负载均衡(相同的域名访问多个相同的后端节点)
- 正向代理。与反向代理类似。不同的是正向代理是客户端的代理。对于服务端来说,代理就是一个访问者。网上寻找的HTTP代理就属于正向代理
反向代理和正向代理的区别:
正向代理:针对客户端而言,代理服务器代理客户端,转发请求,并将获得的内容返回给客户端。
反向代理:针对客户端而言,代理服务器就像是原始服务器,代理集群的web节点服务器返回结果。
负载均衡器
负载均衡也是Nginx常用的一个功能,基于nginx反向代理。负载均衡其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
简单而言就是当有2台或以上服务器时,根据规则随机的将请求分发到指定的服务器上处理,负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡。
Nginx目前支持自带3种负载均衡策略(轮询、加权轮询、IP哈希),还有2种常用的第三方策略(fair、url哈希)。
缓存服务器
nginx可以实现图片、css、js等静态资源文件的缓存,nginx作为缓存服务器时是搭配nginx作为反向代理服务器一起使用的。当客户端第一次通过nginx向后端资源服务器请求静态资源,响应给对应的客户端同时自身缓存一份,后续如果请求相同的资源,就不需要再次向后端服务器请求了,除非缓存被清理或者缓存过期。
结束语
nginx的几个功能很少单一使用,基本都是几个功能搭配混合在一起使用。做实际项目中,nginx一般作为七层负载均衡器,实现分布式架构和应用服务器高可用,还可以实现动静分离,同时缓存静态资源,减轻后端服务器负载。
由于nginx的模块化设计,通过第三方模块,还可以实现其他一些功能,以上都是nginx自带模块实现的,如果你还知道nginx可以实现哪些功能,欢迎在评论区留言!
文|技术猿小黄
图|来源于网络
我是技术猿小黄,很高兴为您回答,如果您喜欢我的回答,可以关注我,点个赞,谢谢!
更多文章:
iphone11pro max支持5g吗(iphone11pro支持5g吗)
2023年12月18日 10:55
westone耳机(有哪些时尚蓝牙耳机品牌推荐莫文蔚同款陶瓷耳机怎么样)
2024年4月3日 06:55
惠普envy是什么意思啊(惠普的笔记本怎么样,envy系列和pavilion两个系列哪个好一点)
2024年3月4日 20:15
iphone系列拍照最好的机型(iphone拍照最好的手机)
2023年2月15日 05:45
乐视2手机二手卖多少钱(乐视手机有32G内存卖二手能值多少钱)
2024年5月14日 20:44
2017年三星手机最新款(三星2017年上市新手机有哪几种)
2024年6月23日 11:14
25寸液晶电视价格表(纯平液晶彩电21寸和25寸的分别是多少钱啊)
2024年5月4日 19:30