Nginx的负载均衡入门解读课件

上传人:艳*** 文档编号:242971189 上传时间:2024-09-13 格式:PPT 页数:24 大小:432.50KB
返回 下载 相关 举报
Nginx的负载均衡入门解读课件_第1页
第1页 / 共24页
Nginx的负载均衡入门解读课件_第2页
第2页 / 共24页
Nginx的负载均衡入门解读课件_第3页
第3页 / 共24页
点击查看更多>>
资源描述
单击鼠标编辑标题文的格式,单击鼠标编辑大纲正文格式,第二个大纲级,第三个大纲级,第四个大纲级,第五个大纲级,第六个大纲级,第七个大纲级,第八个大纲级,第九个大纲级,*,单击鼠标编辑标题文的格式,单击鼠标编辑大纲正文格式,第二个大纲级,第三个大纲级,第四个大纲级,第五个大纲级,第六个大纲级,第七个大纲级,第八个大纲级,第九个大纲级,*,使用,Nginx轻松实现开源负载均衡,张宴,(),2008.9.20 北京,个人简介,张宴,曾在新浪等公司任系统工程师、系统架构师。工作内容主要涉及:服务器系统架构设计与部署、系统运维与调优、网络故障解决、网站后端以及接口类,PHP,程序开发、,Unix,开源软件二次开发、服务器监控系统开发等。具有,CDN,部署,跨,IDC,的数据传输,电信网通南北互通,以及门户类,FLV,视频分享网站新浪播客架构设计经验。,什么是,Nginx?,Nginx (“engine x”),是俄罗斯人,Igor Sysoev(,塞索耶夫,),编写的一款高性能的,HTTP,和反向代理服务器。,Nginx,已经在俄罗斯最大的门户网站,Rambler Media,(,)上运行了,3,年时间,同时俄罗斯超过,20%,的虚拟主机平台采用,Nginx,作为反向代理服务器。,在国内,已经有 新浪博客、新浪播客、网易新闻、六间房、,、,Discuz!,、水木社区、豆瓣、,YUPOO,、海内、迅雷在线 等多家网站使用,Nginx,作为,Web,服务器或反向代理服务器。,使用,Nginx做七层负载均衡的理由,1,、高并发连接:,官方测试能够支撑,5,万并发连接,在实际生产环境中跑到,2,3,万并发连接数。,2,、内存消耗少:,在,3,万并发连接下,开启的,10,个,Nginx,进程才消耗,150M,内存(,15M*10=150M,)。,3,、配置文件非常简单:,风格跟程序一样通俗易懂。,4,、成本低廉:,Nginx,为开源软件,可以免费使用。而购买,F5 BIG-IP,、,NetScaler,等硬件负载均衡交换机则需要十多万至几十万人民币。,使用,Nginx做七层负载均衡的理由,5,、支持,Rewrite,重写规则:,能够根据域名、,URL,的不同,将,HTTP,请求分到不同的后端服务器群组。,6,、内置的健康检查功能:,如果,Nginx Proxy,后端的某台,Web,服务器宕机了,不会影响前端访问。,7,、节省带宽:,支持,GZIP,压缩,可以添加浏览器本地缓存的,Header,头。,8,、稳定性高:,用于反向代理,宕机的概率微乎其微。,Nginx 负载均衡的典型应用,硬件、软件七层负载均衡对比:,NetScaler,与,Nginx,硬件、软件七层负载均衡对比:,NetScaler,与,Nginx,五分钟搞定,Nginx 负载均衡,编译安装,Nginx,1、创建供Nginx使用的组和帐号:,/usr/sbin/groupadd www -g 48,/usr/sbin/useradd -u 48 -g www www,2、编译安装rewrite模块支持包,cd pcre-7.7/,./configure,make & make install,cd ./,编译安装,Nginx,3、编译安装Nginx,./configure -user=www -group=www -prefix=/usr/local/nginx -with-http_stub_status_module -with-http_ssl_module,make & make install,cd ./,4、备份默认nginx.conf配置文件,mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.old,创建,nginx.conf配置文件(1),1、创建Nginx配置文件,vi /usr/local/nginx/conf/nginx.conf,2、输入配置文件内容,user www www;,worker_processes 8;,error_log /usr/local/nginx/logs/nginx_error.log crit;,pid /usr/local/nginx/logs/nginx.pid;,worker_rlimit_nofile 51200;,events,use epoll;,worker_connections 51200;,创建,nginx.conf配置文件(2),http,include mime.types;,default_type application/octet-stream;,#charset gb2312;,server_names_hash_bucket_size 128;,client_header_buffer_size 32k;,large_client_header_buffers 4 32k;,sendfile on;,tcp_nopush on;,keepalive_timeout 60;,tcp_nodelay on;,创建,nginx.conf配置文件(3),#gzip on;,#gzip_min_length 1k;,#gzip_buffers 4 16k;,#gzip_http_version 1.0;,#gzip_comp_level 2;,#gzip_types text/plain application/x-javascript text/css application/xml;,#gzip_vary on;,创建,nginx.conf配置文件(4),upstream ,server 192.168.1.10:80;,server 192.168.1.11:80;,server 192.168.1.12:80;,server 192.168.1.13:81;,upstream ,server 192.168.1.20:80 weight=3;,server 192.168.1.21:80;,server 192.168.1.22:80;,创建,nginx.conf配置文件(5),server,listen 80;,server_name *;,proxy_redirect off;,#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP,proxy_set_header X-Forwarded-For $remote_addr;,if ($request_uri * .*.(js|css|gif|jpg|jpeg|png|bmp|swf)$),proxy_pass ;,if ($request_uri * /view/(.*)$),proxy_pass ;,proxy_pass ;,创建,nginx.conf配置文件(6),#定义日志格式,log_format access $remote_addr - $remote_user $time_local $request ,$status $body_bytes_sent $http_referer ,$http_user_agent $http_x_forwarded_for;,#打日志,access_log /usr/local/nginx/logs/access.log access;,创建,nginx.conf配置文件(7),#允许客户端请求的最大的单个文件字节数,client_max_body_size 10m;,#缓冲区代理缓冲用户端请求的最大字节数 可以理解为先保存到本地再传给用户,client_body_buffer_size 128k;,#跟后端服务器连接的超时时间_发起握手等候响应超时时间,proxy_connect_timeout 600;,#连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理,proxy_read_timeout 600;,#后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据,proxy_send_timeout 600;,创建,nginx.conf配置文件(8),#代理请求缓存区_这个缓存区间会保存用户的头信息以供Nginx进行规则处理_一般只要能保存下头信息即可,proxy_buffer_size 8k;,#同上 告诉Nginx保存单个用的几个Buffer 最大用多大空间,proxy_buffers 4 32k;,#如果系统很忙的时候可以申请更大的proxy_buffers 官方推荐*2,proxy_busy_buffers_size 64k;,#proxy缓存临时文件的大小,proxy_temp_file_write_size 64k;,配置文件编写完毕,启动,Nginx,/usr/local/nginx/sbin/nginx t,如果屏幕显示以下两行信息,说明配置文件正确:,the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok,the configuration file /usr/local/nginx/conf/nginx.conf was tested successfully,那么,则可以启动,Nginx服务:,ulimit -SHn 51200,/usr/local/nginx/sbin/nginx,不中断服务平滑修改,Nginx配置,、修改/usr/local/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:,/usr/local/nginx/sbin/nginx -t,如果屏幕显示以下两行信息,说明配置文件正确:,the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok,the configuration file /usr/local/nginx/conf/nginx.conf was tested successfully,、这时,输入以下命令查看Nginx主进程号:,ps -ef | grep nginx: master process | grep -v grep | awk -F print $2,屏幕显示的即为,Nginx主进程号,例如:,6302,这时,执行以下命令即可使修改过的,Nginx配置文件生效:,kill -HUP 6302,或者用更简便的方法:,kill -HUP cat /usr/local/nginx/logs/nginx.pid,编写每天定时切割,Nginx日志的脚本,1、创建脚本/usr/local/nginx/sbin/cut_nginx_log.sh,输入以下内容:,#!/bin/bash,# This script run at 00:00,# The Nginx logs path,logs_path=/usr/local/nginx/logs/,mkdir -p $logs_path$(date -d yesterday +%Y)/$(date -d yesterday +%m)/,mv $logs_pathaccess.log $logs_path$(date -d yesterday +%Y)/$(date -d yesterday +%m)/access_$(date -d yesterday +%Y%m%d).log,kill -USR1 cat /usr/local/nginx/logs/nginx.pid,2、设置crontab,每天凌晨00:00切割nginx访问日志,crontab -e,输入以下内容:,00 00 * * * /bin/bash /usr/local/nginx/sbin/cut_nginx_log.sh,总结,1、对于中、小型企业,如果没有资金去购买昂贵的四/七层负载均衡交换机,那么Nginx是不错的七层负载均衡选择,并且可以通过 Nginx + Keepalived 实现 Nginx 负载均衡器双机互备,任意一台机器发生故障,对方都能够将虚拟IP接管过去。,2、对于有资金购买四/七层负载均衡交换机的大型网站,Nginx也有其用武之地。以门户类网站为例, F5 BIG-IP等四/七层交换机由于负责了全站多个产品的服务,并发数非常高,而内容转发规则等七层交换业务,用不到F5 BIG-IP的四层硬件芯片,极大地消耗了F5的CPU和内存资源,成为高并发应用的制约条件。而Nginx的出现,成为了F5 BIG-IP七层交换的有力补充。,结束,谢谢各位!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!