Nginx负载均衡搭建胜过Apache十倍?

上传人:jiups****uk12 文档编号:40017347 上传时间:2018-05-22 格式:DOC 页数:19 大小:116.50KB
返回 下载 相关 举报
Nginx负载均衡搭建胜过Apache十倍?_第1页
第1页 / 共19页
Nginx负载均衡搭建胜过Apache十倍?_第2页
第2页 / 共19页
Nginx负载均衡搭建胜过Apache十倍?_第3页
第3页 / 共19页
Nginx负载均衡搭建胜过Apache十倍?_第4页
第4页 / 共19页
Nginx负载均衡搭建胜过Apache十倍?_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《Nginx负载均衡搭建胜过Apache十倍?》由会员分享,可在线阅读,更多相关《Nginx负载均衡搭建胜过Apache十倍?(19页珍藏版)》请在金锄头文库上搜索。

1、 编者按:Nginx 是目前比较重要的开源性负载均衡技术,新浪、网易、六间 房等很多网站都将 Nginx 部署进自己的网站系统架构,并解决部分问题。本文 是作者长期的实战经验,很有参考价值。众网站纷纷重视 NginxNginx:承受 3 万并发连接数,胜过 Apache 10 倍如何获取相关开源程序?Nginx 相关环境部署:PHP5 安装、配置安装、配置 Nginx 0.7.14本文是我撰写的关于搭建“Nginx + PHP(FastCGI)”Web 服务器的第 4 篇文章。本系列文章作为国内最早详细介绍 Nginx + PHP 安装、配置、使用的 资料之一,为推动 Nginx 在国内的发展

2、产生了积极的作用。众网站纷纷重视众网站纷纷重视 NginxNginx这是一篇关于 Nginx 0.7.x 系列版本的文章,安装、配置方式与第 3 篇文 章相差不大,但配置参数有不同。Nginx 0.7.x 系列版本虽然为开发版,但在 很多大型网站的生产环境中已经使用。Nginx (“engine x“) 是一个高性能的 HTTP 和反向代理服务器,也是一 个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量 第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将 源代码以类 BSD 许可证的形式发布。Nginx

3、 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括新浪博客、新浪播客、网易新闻等门户网 站频道,六间房、 等视频分享网站,Discuz!官方论坛、水木社区 等知 名论坛,豆瓣、YUPOO 相册、海内 SN NginxNginx:承受:承受 3 3 万并发连接数,胜过万并发连接数,胜过 ApacheApache 1010 倍倍在高并发连接的情况下,Nginx 是 Apache 服务器不错的替代品。Nginx 同 时也可以作为 7 层负载均衡服务器来使用。根据我的测试结果,Nginx 0.7.14 + PHP 5.2.6 (FastCG

4、I) 可以承受 3 万以上的并发连接数,相当于同等环境下 Apache 的 10 倍。根据我的经验,4GB 内存的服务器+Apache(prefork 模式)一般只能处理 3000 个并发连接,因为它们将占用 3GB 以上的内存,还 得为系统预留 1GB 的 内存。我曾经就有两台 Apache 服务器,因为在配置文件中设置的 MaxClients 为 4000,当 Apache 并发连接数达到 3800 时,导致服务器内存和 Swap 空间用 满而崩溃。而这台 Nginx 0.7.14 + PHP 5.2.6 (FastCGI) 服务器在 3 万并发连接下, 开启的 10 个 Nginx 进程

5、消耗 150M 内存(15M*10=150M),开启的 64 个 php- cgi 进程消耗 1280M 内存 (20M*64=1280M),加上系统自身消耗的内存,总共 消耗不到 2GB 内存。如果服务器内存较小,完全可以只开启 25 个 php-cgi 进程, 这样 php-cgi 消耗的总内存数才 500M。在 3 万并发连接下,访问 Nginx 0.7.14 + PHP 5.2.6 (FastCGI) 服务器 的 PHP 程序,仍然速度飞快。下图为 Nginx 的状态监控页面,显示的活动连接 数为 28457(关于 Nginx 的监控页配置,会在本文接下来所给出 的 Nginx 配置

6、文件中写明):我生产环境下的两台 Nginx + PHP5(FastCGI)服务器,跑多个一般复杂 的纯 PHP 动态程序,单台 Nginx + PHP5(FastCGI)服务器跑 PHP 动态程序的 处理能力已经超过“700 次请求/秒”,相当于每天可以承受 6000 万 (700*60*60*24=60480000)的访问量(更多信息见此),而服务器的系统负载 也不高:S、迅雷在线等新兴 Web 2.0 网站。如何获取相关开源程序?如何获取相关开源程序?安装步骤:(系统要求:Linux 2.6+ 内核,本文中的 Linux 操作系统为 CentOS 5.1,另在 RedHat AS4 上也

7、安装成功)一、获取相关开源程序:1、利用 CentOS Linux 系统自带的 yum 命令安装、升级所需的程序库 (RedHat 等其他 Linux 发行版可从安装光盘中找到这些程序库的 RPM 包,进行 安装):sudo -sLANG=Cyum -y install gcc gcc-c+ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib- devel glibc glibc-devel glib2 glib2-devel bzi

8、p2 bzip2-devel ncurses ncurses-devel curl curl-devel2、RedHat 等其他 Linux 发行版可从安装光盘中找到这些程序库的 RPM 包 (事先可通过类似“rpm -qa | grep libjpeg”的命令查看所需的 RPM 包是否 存在,通常是“xxx-devel”不存在,需要安装)。RedHat 可以直接利用 CentOS 的 RPM 包 安装,以下是 RPM 包下载网址:、RedHat AS4 worker_processes 8;error_log /data1/logs/nginx_error.log crit;pid /usr

9、/local/webserver/nginx/nginx.pid;#Specifies the value for maximum file descriptors that can be opened by this process.worker_rlimit_nofile 51200;events?use epoll;?worker_connections 51200;http?include mime.types;?default_type application/octet-stream;?#charset gb2312;?server_names_hash_bucket_size 1

10、28;?client_header_buffer_size 32k;?large_client_header_buffers 4 32k;?sendfile on;?tcp_nopush on;?keepalive_timeout 60;?tcp_nodelay on;?fastcgi_connect_timeout 300;?fastcgi_send_timeout 300;?fastcgi_read_timeout 300;?fastcgi_buffer_size 64k;?fastcgi_buffers 4 64k;?fastcgi_busy_buffers_size 128k;?fas

11、tcgi_temp_file_write_size 128k;?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;?#limit_zone crawler $binary_remote_addr 10m;?server?listen 80;?server_name ;?index index.h

12、tml index.htm index.php;?root /data0/htdocs/blog;?#limit_conn crawler 20;?location .*.(php|php5)?$?#fastcgi_pass unix:/tmp/php-cgi.sock;?fastcgi_pass 127.0.0.1:9000;?fastcgi_index index.php;?include fcgi.conf;?location .*.(gif|jpg|jpeg|png|bmp|swf)$?expires 30d;?location .*.(js|css)?$?expires 1h;?lo

13、g_format access $remote_addr - $remote_user $time_local “$request“ ?$status $body_bytes_sent “$http_referer“ ?“$http_user_agent“ $http_x_forwarded_for;?access_log /data1/logs/access.log access;?server?listen 80;?server_name ;?index index.html index.htm index.php;?root /data0/htdocs/www;?location .*.

14、(php|php5)?$?#fastcgi_pass unix:/tmp/php-cgi.sock;?fastcgi_pass 127.0.0.1:9000;?fastcgi_index index.php;?include fcgi.conf;?log_format wwwlogs $remote_addr - $remote_user $time_local “$request“ $status $body_bytes_sent “$http_referer“ “$http_user_agent“ $http_x_forwarded_for;?access_log /data1/logs/

15、wwwlogs.log wwwlogs;?server?listen 80;?server_name ;?location / ?stub_status on;?access_log off;?、在/usr/local/webserver/nginx/conf/目录中创建 fcgi.conf 文件:vi /usr/local/webserver/nginx/conf/fcgi.conf输入以下内容:引用fastcgi_param GATEWAY_INTERFACE CGI/1.1;fastcgi_param SERVER_SOFTWARE nginx;fastcgi_param QUERY_STRING $query_string;fastcgi_param REQUEST_METHOD $request_method;fastcgi_param CONTENT_TYPE $content_type;fastcgi_param CONTENT_LENGTH $content_length;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param SCRIPT_NAME

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号