1.Nginx 作为一个 web 服务器, 只能做基于80端口或者mail 的 负载均衡是基于应用层的负载均衡,这一点LVS 就是一个专门的负载均衡软件没有针对什么端口,什么FTP啦,都可以
这个是文档里面找的
LVS负载调度器能够支持绝大多数的TCP和UDP协议:
协议内 容TCPHTTP,FTP,PROXY,SMTP,POP3,IMAP4,DNS,LDAP,HTTPS,SSMTP等UDPDNS,NTP,ICP,视频、音频流播放协议等无需对客户机和服务器作任何修改,可适用大多数Internet服务。
性能:LVS服务器集群系统具有良好的伸缩性,可支持几百万个并发连接。配置100M网卡,采用VS/TUN或VS/DR调度技术,集群系统的吞吐量可高达1Gbits/s;如配置千兆网卡,则系统的最大吞吐量可接近10Gbits/s
2.Nginx 与 Apache 怎么说 Apache 这么长时间了,模块那是超级多,还有Nginx 是基于事件驱动的。而Apache是线程的。什么的什么的。这个我不明白。可能要多学点。反正知道的就是Nginx的并发处理非常不错。
3.突然想到,其实nginx 和这些web 服务器不冲突,可以nginx 做前端的负载均衡和反向代理,后端开启httpd 服务,共用一个db设备,比如Mysql 利用 Master/Slave 来做后端 ,呼呼 这算是一个架构么。。。其实都是空话。。。额。。
4nignx 的 features
1).keep-alive and pipeline
2).智能DNS
3).ip访问控制和基本的身份验证
location /test {
auth_basic "Restricted";
auth_basic_user_file /usr/local/test;
}
4).流媒体 MP4/FLV
5).相应线程
6).支持perl
5.nginx 重写 rewrite 才用 PCRE的正则表达式的语法
if($http_usr_agent ~ MSIE){
rewrite ^(.*)$/web1/$1 break
}
location ~ .*\.(sh|bash)?${
return 403;
}
使用last会对server标签重新发起请求,而break就直接使用当前的location中的数据源来访问
在location / { 配置里:
1、使用root指定源:使用last和break都可以
2、使用proxy_pass指定源:使用last和break都可以
3、使用alias指定源:必须使用last
在location /a/或使用正则的location ~ ^/a/里:
1、使用root指定源:使用last和break都可以
2、使用proxy_pass指定源:使用break和last结果有所区别
3、使用alias指定源:必须使用last
6.nginx 对 fastcgi的支持
-----------------------------------
Nginx 指令大全 http://howtocn.org/nginx:directiveindex
-----------------------------------
扯了这么多。开始看看大神们对Nginx的解释 ,感觉茅塞顿开。。。。。
首先 我们ps -ef|grep nginx 发现nginx 是由一个master 和多个worker 来组成的,顾名思义,Master是管理那些worker的, master 会fork出worker ,有请求的时候,worker就会去接受那些请求,大神说nginx 有个 accept_mutex 参数 ,可以防止一个worker 接受成功,其他worker都接受失败的错误设定,对 就是对请求加共享锁,每个worker进程处理一个请求,进水不犯河水,这样 nignx 的 从容的重启就可以实现了,不会全盘杀掉,你跑你的,我重启我的,你跑完了 我再fork worker就行了,当然,在此期间,旧的worker肯定不能接受新的请求。
那这么多worker进程,请求多了来了也吃不消呀,哪里有说的 nignx处理高并发的特点。貌似apache就是每个请求都会有一个工作线程(多线程模式),然后纷纷多的线程一下来,然后就是各种alert邮件。在这里 nignx异步非阻塞版本,可以同时处理很多请求。
就像是具体到系统调用就是像select/poll/epoll/kqueue这样的系统调用,我们的请求最后就是事件驱动的,一个请求请求一个事件处理,enginx就是把事件放到epoll中,事件准备好了,我们就去读写,当读写返回EAGAIN时,我们将它再次加入到epoll里面。这样,只要有事件准备好了,我们就去处理它,只有当所有事件都没准备好时,才在epoll里面等着。这样,我们就可以并发处理大量的并发了,只是线程只有一个,所以处理就是在这些事件中不断的切换 切换。。
我们之前说过,推荐设置worker的个数为cpu的核数,在这里就很容易理解了,更多的worker数,只会导致进程来竞争cpu资源了,从而带来不必要的上下文切换。而且,nginx为了更好的利用多核特性,提供了cpu亲缘性的绑定选项,我们可以将某一个进程绑定在某一个核上,这样就不会因为进程的切换带来cache的失效。像这种小的优化在nginx中非常常见,同时也说明了nginx作者的苦心孤诣。比如,nginx在做4个字节的字符串比较时,会将4个字符转换成一个int型,再作比较,以减少cpu的指令数等等。(这一段抄得。。还没用到,所以不知道怎么理解)
一个nginx能建立的最大连接数,应该是worker_connections * worker_processes
比如图片服务器,通常一个网页会包含很多个图片。打开keepalive也会大量减少time-wait的数量。
分享到:
相关推荐
nginx进阶vip - 第二课笔记1
Nginx进阶基础Nginx进阶基础
课程内容包括了Nginx进阶基础,Nginx配置提升,JVM虚拟机尝试,JVM运维实用排障工具,JVM监控工具,Tomcat配置,Tomcat运维与部署等Web服务器的必备运维部署技术。 ===============课程目录=============== (1)\...
Nginx入门&进阶.pdf
虽然在课程中还讲解了部分HTTP协议的技术,但是课程的重点还是NGINX、JVM、Tomcat三相运维与配置技术。课程内容包括了Nginx进阶基础,Nginx配置提升,JVM虚拟机尝试,JVM运维实用排障工具,JVM监控工具,Tomcat配置...
Nginx实战进阶
2、后端需要用nginx,把接口显现给前端3、微服务的概念:从前端到后台,一套业务流程是完整的4、微服务追求业务可插拔,在部署中,有以下问题a、首先一个问题:跨
2、cors跨域,此方式非常优雅,是w3c组织制定的解决方案 2、chrome再次发起url2资源请求,携带referers = url1 4、下面是nginx
主要注意的是,不是Nginx开启了gzip功能,HTTP响应的数据就一定会被压缩(me:http设置header会自动在传输的时候对数据进行压缩),除了满足Ng
第八讲Nginx实战进阶.pptx
3.Nginx 高级进阶篇.xmind
个人整理的Nginx整理视频学习资料视频,内容丰富,供大家学习.大家相互帮助
2021 Java架构进阶 Nginx企业级教程.txt打包整理.zip
2022版Nginx教程(进阶高级,架构师必备)+视频+源码+资料.txt
├──07-安装部署-Nginx在centos7中编译安装成系统服务.mp4 344.84M ├──08-基本使用-Nginx的目录结构 在线编辑默认页.mp4 109.11M ├──09-基本使用-Nginx多进程模型和基本请求流程.mp4 25.58M ├──10-基本...
自己的nginx源码学习资料,包含《Nginx模块开发指南》和《深入理解Nginx》等,方便初学者了解nginx设计思想以及源码
第1章 Nginx简介 ...第10章 Nginx在国内知名网站中的应用案例 第11章 Nginx的非典型应用实例 第12章 Nginx的核心模块 第13章 Nginx的标准HTTP模块 第14章 Nginx的其他HTTP模块 第15章 Nginx的邮件模块
Nginx.xmind-Nginx思维导图学习
Nginx配置学习资料: Nginx常用功能 Nginx配置文件结构 Nginx代理服务的配置说明 Nginx负载均衡详解
nginx全程学习资料,为pdf格式。讲述了nginx基础 于高级部分 对于当前高并发站点服务器设置。