版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、使用使用NginxNginx轻松实现开源负载均衡轻松实现开源负载均衡张宴张宴(http:/)2008.9.20 北京个人简介个人简介 张宴,曾在新浪等公司任系统工程师、系统架构张宴,曾在新浪等公司任系统工程师、系统架构师。工作内容主要涉及:服务器系统架构设计与师。工作内容主要涉及:服务器系统架构设计与部署、系统运维与调优、网络故障解决、网站后部署、系统运维与调优、网络故障解决、网站后端以及接口类端以及接口类PHPPHP程序开发、程序开发、UnixUnix开源软件二次开开源软件二次开发、服务器监控系统开发等。具有发、服务器监控系统开发等。具有CDNCDN部署,跨部署,跨IDCIDC的数据传输,电
2、信网通南北互通,以及门户类的数据传输,电信网通南北互通,以及门户类FLVFLV视频分享网站视频分享网站新浪播客架构设计经验。新浪播客架构设计经验。什么是什么是NginxNginx? Nginx (“engine x”) Nginx (“engine x”) 是俄罗斯人是俄罗斯人Igor Sysoev(Igor Sysoev(塞塞索耶夫索耶夫) )编写的一款高性能的编写的一款高性能的 HTTP HTTP 和反向代理服务和反向代理服务器。器。 Nginx Nginx 已经在俄罗斯最大的门户网站已经在俄罗斯最大的门户网站 Rambler Rambler MediaMedia(www.rambler.
3、ruwww.rambler.ru)上运行了)上运行了3 3年时间,同时年时间,同时俄罗斯超过俄罗斯超过20%20%的虚拟主机平台采用的虚拟主机平台采用NginxNginx作为反向作为反向代理服务器。代理服务器。 在国内,已经有在国内,已经有 新浪博客、新浪播客、网易新闻、新浪博客、新浪播客、网易新闻、六间房、六间房、Discuz!Discuz!、水木社区、豆瓣、水木社区、豆瓣、YUPOOYUPOO、海内、迅雷在线、海内、迅雷在线 等多家网站使用等多家网站使用 Nginx Nginx 作作为为WebWeb服务器或反向代理服务器。服务器或反向代理服务器。使用使用NginxNginx做七层负载均衡的
4、理由做七层负载均衡的理由 1 1、高并发连接:、高并发连接:官方测试能够支撑官方测试能够支撑5 5万并发连万并发连接,在实际生产环境中跑到接,在实际生产环境中跑到2 23 3万并发连接数。万并发连接数。 2 2、内存消耗少:、内存消耗少:在在3 3万并发连接下,开启的万并发连接下,开启的1010个个Nginx Nginx 进程才消耗进程才消耗150M150M内存内存(15M15M* *10=150M10=150M)。)。 3 3、配置文件非常简单:、配置文件非常简单:风格跟程序一样通俗风格跟程序一样通俗易懂。易懂。 4 4、成本低廉:、成本低廉:NginxNginx为开源软件,可以免费使为开源
5、软件,可以免费使用。而购买用。而购买F5 BIG-IPF5 BIG-IP、NetScalerNetScaler等硬件负载等硬件负载均衡交换机则需要十多万至几十万人民币。均衡交换机则需要十多万至几十万人民币。使用使用NginxNginx做七层负载均衡的理由做七层负载均衡的理由 5 5、支持、支持RewriteRewrite重写规则:重写规则:能够根据域名、能够根据域名、URLURL的不同,将的不同,将 HTTP HTTP 请求分到不同的后端请求分到不同的后端服务器群组。服务器群组。 6 6、内置的健康检查功能:、内置的健康检查功能:如果如果 Nginx Nginx Proxy Proxy 后端的
6、某台后端的某台 Web Web 服务器宕机了,不服务器宕机了,不会影响前端访问。会影响前端访问。 7 7、节省带宽:、节省带宽:支持支持 GZIP GZIP 压缩,可以添加压缩,可以添加浏览器本地缓存的浏览器本地缓存的 Header Header 头。头。 8 8、稳定性高:、稳定性高:用于反向代理,宕机的概率用于反向代理,宕机的概率微乎其微。微乎其微。Nginx Nginx 负载均衡的典型应用负载均衡的典型应用 硬件、软件七层负载均衡对比:NetScaler与Nginx硬件、软件七层负载均衡对比:NetScaler与Nginx五分钟搞定 Nginx 负载均衡编译安装编译安装NginxNgin
7、x1、创建供Nginx使用的组和帐号:/usr/sbin/groupadd www -g 48/usr/sbin/useradd -u 48 -g www www2、编译安装rewrite模块支持包wget ftp:/ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gztar zxvf pcre-7.7.tar.gzcd pcre-7.7/./configuremake & make installcd ./编译安装编译安装NginxNginx3、编译安装Nginxwget http:/sysoev.ru/nginx/n
8、ginx-0.7.17.tar.gztar zxvf nginx-0.7.17.tar.gzcd nginx-0.7.17/./configure -user=www -group=www -prefix=/usr/local/nginx -with-http_stub_status_module -with-http_ssl_modulemake & make installcd ./4、备份默认nginx.conf配置文件mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.old创建创建nginx.confngin
9、x.conf配置文件配置文件(1)(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.confnginx.conf配置文件配
10、置文件(2)(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.confnginx.conf配置文件配置文件(3)(3) #gzi
11、p 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.confnginx.conf配置文件配置文件(4)(4) upstream server 0:80; server 1:80; server 2:80;
12、server 3:81; upstream server 0:80 weight=3; server 1:80; server 2:80; 创建创建nginx.confnginx.conf配置文件配置文件(5)(5) server listen 80; server_name *; proxy_redirect off; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP proxy_set_header X-Forwarded-For $remote_addr; if ($requ
13、est_uri * .*.(js|css|gif|jpg|jpeg|png|bmp|swf)$) proxy_pass http:/; if ($request_uri * /view/(.*)$) proxy_pass http:/; proxy_pass http:/;创建创建nginx.confnginx.conf配置文件配置文件(6)(6) #定义日志格式 log_format access $remote_addr - $remote_user $time_local $request $status $body_bytes_sent $http_referer $http_user
14、_agent $http_x_forwarded_for; #打日志 access_log /usr/local/nginx/logs/access.log access;创建创建nginx.confnginx.conf配置文件配置文件(7)(7) #允许客户端请求的最大的单个文件字节数 client_max_body_size 10m; #缓冲区代理缓冲用户端请求的最大字节数 可以理解为先保存到本地再传给用户 client_body_buffer_size 128k; #跟后端服务器连接的超时时间_发起握手等候响应超时时间 proxy_connect_timeout 600; #连接成功后_
15、等候后端服务器响应时间_其实已经进入后端的排队之中等候处理 proxy_read_timeout 600; #后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据 proxy_send_timeout 600;创建创建nginx.confnginx.conf配置文件配置文件(8)(8) #代理请求缓存区_这个缓存区间会保存用户的头信息以供Nginx进行规则处理_一般只要能保存下头信息即可 proxy_buffer_size 8k; #同上 告诉Nginx保存单个用的几个Buffer 最大用多大空间 proxy_buffers 4 32k; #如果系统很忙的时候可以申请更大的p
16、roxy_buffers 官方推荐*2 proxy_busy_buffers_size 64k; #proxy缓存临时文件的大小 proxy_temp_file_write_size 64k; 配置文件编写完毕启动启动NginxNginx/usr/local/nginx/sbin/nginx t如果屏幕显示以下两行信息,说明配置文件正确:the configuration file /usr/local/nginx/conf/nginx.conf syntax is okthe configuration file /usr/local/nginx/conf/nginx.conf was te
17、sted successfully那么,则可以启动Nginx服务:ulimit -SHn 51200/usr/local/nginx/sbin/nginx不中断服务平滑修改不中断服务平滑修改NginxNginx配置配置、修改/usr/local/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:/usr/local/nginx/sbin/nginx -t如果屏幕显示以下两行信息,说明配置文件正确:the configuration file /usr/local/nginx/conf/nginx.conf syntax is okthe configur
18、ation 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编写每天定时切割编写每天定时切割NginxNginx日志的脚本日志的脚本1、创建脚本/usr/local/nginx/sbin/cut_nginx_log.sh,输入以下内容:#!/bin/bash# This script run at 00:00# The Nginx logs pathlogs_path=/usr/local/nginx/logs/mkdir -p $logs_path$(date -d yesterday +%Y)/$(date
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学五年级方程知识课件
- 中秋节班会课件
- 会计信息系统实训-供应链篇(用友U8 V10.1)(第2版) 课件 单元9 报表管理系统
- 品管圈PDCA案例-普外科提高甲状腺手术患者功能锻炼合格率
- 消防安全管理知识
- 运用品管圈降低PICC置管术后敷贴部位皮肤过敏率PDCA成果汇报书
- 嵌入式系统原理与应用-基于Cortex-A53微处理器 课件 第8章 Qt编程
- 大寒节气年味更浓大寒习俗美食诗词课件
- 单元3 计算机软件基础
- 健康促进学校项目的实施与推广课件
- 【MOOC】机械设计-北京交通大学 中国大学慕课MOOC答案
- Unit 4 Plants around us(说课稿)-2024-2025学年人教PEP版(2024)英语三年级上册
- 2024版首诊负责制度课件
- 2024-2030年噬菌体行业市场现状供需分析及重点企业投资评估规划分析研究报告
- GB/T 44351-2024退化林修复技术规程
- 苏教版九年级上册劳动技术+第1课+校园蔬菜种植【课件】
- 24春国家开放大学《教育学》期末大作业
- 国家开放大学《比较初等教育》终结性考核大作业参考答案
- 营养与食品卫生学(青岛大学)知到章节答案智慧树2023年
- 大学生朋辈心理辅导智慧树知到答案章节测试2023年浙江大学
- 人防工程质量监督方案
评论
0/150
提交评论