`
jiakechong
  • 浏览: 208971 次
社区版块
存档分类
最新评论

[转]日均百万PV网站解决方案

 
阅读更多
from
http://blog.csdn.net/weq221/article/details/5883450


项目需求:
现在基本环境:
日均百万PV的导航站,静态页面,服务器环境IIS,配合10M CDN,实际上经常超出至18M左右,因此费用也不低,并且CDN节点有时会出问题,还 需要每次的更改后刷新CDN,不太方便。
改造后期望:
配置独立服务器,升级带宽,更改环境以支持PHP的程序,实现本地化的广告投放功能,以扩展自有化。

具体实现:
下面将记录实现过程的点滴,期间得益于互联网上许多资料的帮助,在此一并表示感谢。此文章力争做到细致,清晰,希望对后来者起到一定帮助作用。

一,服务器方面
1,服务器选择
根据项目所需,具体业务情况,选择为CPU较高,内存一般,硬盘一般,主板较好,较稳定的1U服务器,最后定为DELL R410。
2,服务器基本环境
Centos+apache+php+mysql
3,开始安装,选择F11进入启动选择,选择2 SATA OPTICAL启动模式,即为从光驱启动,提示找不到光盘,可以重新放置,调整位置,一般均为 不能正确读盘造成。
4,安装完毕后,发现网卡工作不正常,驱动没有正常安装,查找网上文章,下载最新BCM5716驱动,安装均未能成功,怀疑是LINUX内核版本问题。
5,centos5.2—>centos5.4后安装完毕,网卡装上,但不稳定,是因为固件支持文件所引起
yum upgrade 升级内核及一切必要升级的组件,保证环境为最新
下载dell最新补丁,并安装,过程中可能需要其它组件支持,均使用yum安装即可
wget http://ftp.us.dell.com/network/NETW_FRMW_LX_R239524.BIN
chmod +x NETW_FRMW_LX_R239524.BIN
./NETW_FRMW_LX_R239524.BIN
注意过程的完整性,完毕后,重启,设置IP,工作正常。

二,软环境方面

1,基本环境实现
具体安装配置请参考,配置服务器环境那篇文章
2,转移项目,使用了SVN,配置项目环境,smarty,adodb,建立MVC工作模式,具体参考之前文章

三,测试方面

为了实现项目需求,此部分也是重点部分,过程中碰到一些问题,也累积了一些经验。
1,安装 webbench进行压力测试
首先下载tar包
tar -zxvf webbench-1.5.tar.gz
cd webbench-1.5
make && make install
webbench –help
webbench [option]… URL
  -f|–force               Don’t wait for reply from server.
  -r|–reload              Send reload request - Pragma: no-cache.
  -t|–time           Run benchmark for seconds. Default 30.
  -p|–proxy Use proxy server for request.
  -c|–clients          Run HTTP clients at once. Default one.
  -9|–http09              Use HTTP/0.9 style requests.
  -1|–http10              Use HTTP/1.0 protocol.
  -2|–http11              Use HTTP/1.1 protocol.
  –get                    Use GET request method.
  –head                   Use HEAD request method.
  –options                Use OPTIONS request method.
  –trace                  Use TRACE request method.
  -?|-h|–help             This information.
  -V|–version             Display program version.
具体方法:
webbench -c 3000 -t 60 http://localhost/index.html
60秒内3000个访问,此时可以用IE访问该链接,看看是否速度正常。。

2,apache测试
经测试,在压力情况下,并不能很好支持服务,于是修改了最大连接数
查看当前的连接数可以用:
ps aux | grep httpd | wc -l

或:
pgrep httpd|wc -l控制最大连接数的MaxClients ,因此可以尝试配置为:
<IfModule mpm_prefork_module>
                StartServers                      5
                MinSpareServers                   5
                MaxSpareServers                  10
                ServerLimit                    5500
                MaxClients                     5000
                MaxRequestsPerChild               100
</IfModule>
注意:MaxClients默认最大为250,若要超过这个值就要显式设置ServerLimit,且ServerLimit要放在MaxClients 之前,值要不小于MaxClients,不然重启httpd时会有提示。  

经以上修改后,重启服务,上线后,稍一会就打不开了,apache在多用户并发的情况下处理的并不理想。

3,更改环境nginx提供WEB服务
由于centos没有默认的nginx软件包,需要启用REHL的附件包

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
yum -y install nginx 
设置开机启动
chkconfig nginx on
安装spawn-fcgi来运行php-cgi

yum install spawn-fcgi
下载spawn-fcgi 的启动脚本
wget http://bash.cyberciti.biz/dl/419.sh.zip
unzip 419.sh.zip
mv 419.sh /etc/init.d/php_cgi
chmod +x /etc/init.d/php_cgi
启动php_cgi
/etc/init.d/php_cgi start
查看进程
netstat -tulpn | grep :9000
若出现如下代表一切正常
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 4352/php-cgi

然后要配置php.ini
去掉;使之生效
cgi.fix_pathinfo=1
加上;
; doc_root =


也可单独安装nginx0.8.15
yum -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 bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
tar zxvf nginx-0.8.15.tar.gz
cd nginx-0.8.15/
./configure –user=www –group=www –prefix=/usr/local/webserver/nginx –with-http_stub_status_module –with-http_ssl_module
make && make install
cd ../


rc.local里加入

/usr/local/webserver/nginx/sbin/nginx

开机自启动服务
可用

ps -ef | grep “nginx: master process” | grep -v “grep” | awk -F ‘ ‘ ‘{print $2}’

查看当前nginx进程情况,我是装了两个,如果都起来,则有两个pid进程,要确定哪个是0.8.15的,然后做完修改好
要重启生效

kill -HUP 12996
配置虚机
server {
        listen       81;
     
        server_name  www.abc.com ;
root   /work/site/www/abc/docs;
#如下必须加上index.php否则有可能出现403forbidden错误
            index  index.html index.htm index.php;
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;

        location ~ /.php$ {
       
#fastcgi_pass  unix:/tmp/php-cgi.sock;
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
#如下 必须加上这一行,是指定script_filename, 否则有可能返回404没有找到的错误
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
#fastcgi_params文件不用修改
      include fastcgi_params;
        }
    }

同时可配置error页面。
配置status状态监测页面
server
  {
    listen  80;
    server_name  status.abc.com;
location / {
    stub_status on;
    access_log   off;
    }
  }

解决500错误
vi /etc/nginx/nginx.conf
events {
    worker_connections  1024;
}
调整为
events {
    worker_connections  10240;
}

cat /proc/sys/fs/file-max

ulimit -n 改为上面的大数

vi /etc/profile
添加
ulimit -HSn 大数

source /etc/profile


配置完成后,要kill -HUP 11223重启nginx,访问php正常。。。也可以同在0.6.39中配置,一样通过81也正常,别忘了更改selinux端口生效。

为了开机自启动NGINX相关的服务必须在rc.d/rc.local中加入:

ulimit -n 163672
/etc/init.d/php_cgi start
/usr/local/webserver/nginx/sbin/nginx
注意先后顺序,否则可能出现502网关错误或500打为开错误。





ls -l查看文件 所属
给nginx开通session的管理权限,很重要,使PHP中应用的SESSION能够起作用
默认安装的nginx通过make就会有一个nginx的用户,要给它加上使用session的权限
chown -R nginx /var/lib/php/session
这样就可以在nginx中结合php使用session了,至此,原在apache中运行的项目就移植到nginx中了,同时80,81,82均正常,对 外使用80,通过status查看
Active connections: 7658
连接数在7000多时,正常访问!!!
当然为了本地化的实现,是用php分析地区来源然后跳到对应地区页面上,在框架里,所以前端访问还是域名。

四,总结补充

综上,基本可以配置出支持日均百万PV的网站架构。过程中可能有不详细的地方,稍后不断补充,丰富。
开通vsftp
1,创建用户
useradd bjh2o -d /work/site/bjh2o.com -m
2,设置密码
passwd bjh2o
XXX
3,修改/etc/vsftpd/chroot_list
加入bjh2o

给bjh2o这个ftp用户操作相应目录的权限
chown -R bjh2o /work/site/bjh2o.com

4,配置站点http.conf

5,重启web,vsftpd服务
分享到:
评论

相关推荐

    架构层面高并发解决方案

    ### 架构层面高并发解决方案 #### 基本概念 在探讨高并发解决方案之前,首先需要明确几个关键概念。 - **并发**:在操作系统中指的是一个时间段内多个程序同时处于运行状态,但在任何给定时刻只有一个程序在...

    web服务集群解决方案借鉴.pdf

    【标题】:“Web服务集群解决方案借鉴” 【描述】:该文档提供了一个Web服务集群的解决方案,旨在支持大规模并发用户访问,保证系统稳定性和高处理能力。解决方案采用了Nginx、Tomcat集群和Mysql集群技术。 【核心...

    web服务集群解决方案.pdf

    通过上述设计,系统能够应对日均IP访问量10万左右,峰值15万IP,日均PV50w,峰值70wPV的情况。系统响应时间在高峰时期能控制在3秒内,保证了用户体验。同时,这种架构易于扩展,只需添加更多的服务器到集群中,即可...

    linux下搭建日均200WPV的网站项目

    在Linux环境下搭建日均200万页面浏览量(PV)的网站项目涉及多个IT领域的知识,包括系统配置、高可用性集群、网络服务、存储解决方案、安全配置以及负载均衡和监控。下面详细说明各个知识点: 一、MySQL集群配置 ...

    web服务集群解决方案归纳.pdf

    首先,为了满足5000家商户、2000万用户、每天1万单以上订单处理能力的需求,以及处理日均10万IP和50万PV的访问量,系统设计中采用了Nginx和Tomcat集群以及Mysql集群技术。 **Nginx**:作为高性能的HTTP和反向代理...

    职业教育网站推广方案.pdf

    1. 访问量目标:以一年为周期计划实施前期目标,实现访问量日均IP量1000,日均PV量10000。 2. 注册用户数量:以一年为周期计划实施前期目标,实现全年注册用户达到10000以上。 3. 品牌影响力:到2015年年底实现中装...

    百度春晚极限压力场景下的运维解决方案.pdf

    考虑到1亿DAU(Daily Active Users)产生的日均PV(Page Views),以及活动流量模型的影响,他们预测并规划了必要的资源供给。 2. **资源预载与逻辑前置**:为了应对瞬时的流量洪峰,百度采取了资源预载策略,提前...

    年/季度网站运营策划方案模版

    - **日均PV**:每天页面浏览量的目标值。 #### 五、运营活动计划 运营活动计划是对全年活动的一个总体规划,包括活动的时间安排、具体活动内容等。例如: - **活动计划时间表**:列出每个活动的预计举办时间,...

    数据中心存储平台革新案例-河北网络广播电视台.pdf

    此外,该系统还支持电视购物、电子商城、定制游戏等增值服务的数据传输分发,以及第三方支付平台接口,能承载4000并发视频访问,应对日均50万独立访客(UV)、500万页面浏览量(PV),以及峰值1000万页面访问量。...

    阿里伯乐网站合作营销方案.pptx

    阿里伯乐网站凭借其庞大的用户基础,日均PV和IP访问量,以及不断增长的商家会员数量,为企业提供了极具性价比的营销渠道。 阿里伯乐的资源优势在于其作为全球领先的电子商务推广平台,其愿景是让电子商务普及到中国...

    淘宝高访问量优化

    根据文中提供的信息,淘宝的日均页面浏览量(PV)约为25亿次,独立IP访问量达到1.5亿次,且这一数字仍在不断增长。如此庞大的访问量对系统的稳定性和性能提出了极高的要求。 具体来说,淘宝所面临的挑战包括但不...

    公司网站运营规划分享.pdf

    4. **解决方案**: - **人力**:招聘实习生或专业人员辅助技术支持,外聘兼职编辑并为商家提供培训。 - **财务**:投资于网络媒体投放,提升PR值和PV值。具体策略包括友情链接置换,广告激励,购买友链,软文活动...

    大型电商网站架构设计.docx

    * 注册用户数-日均 UV 量-每日的 PV 量-每天的并发量 * 峰值预估:平常量的 2~3 倍 * 根据并发量(并发,事务数),存储容量计算系统容量 客户需求:3~5 年用户数达到 1000 万注册用户;每秒并发数预估:8340 次。 ...

    搜易站内搜索引擎 v5.3

    搜易站内搜索引擎是面向互联网站点的站内搜索解决方案,功能强大,性能优越,可帮助大数据量和大搜索量的网站低成本解决站内搜索质量和效率问题。开发本产品是因为遇到不少网站因为搜索量大,使用普通的数据库搜索...

    360全商业产品手册.pdf

    这些资源为广告主提供了多种广告形式和位置选择,如PC端日均PV达到6.77亿,用户粘性高,浏览页面多,提供了更大的广告展示机会。 最后,360的360导航作为中国最大的垂直网址导航入口,日活跃度行业第一,用户粘性高...

    智子云新媒体大数据营销方案.pdf

    智子云平台是一个集成了大数据处理、分析和应用的智能化营销解决方案。它提供了一个统一的平台,用于对接国内主流的广告交易平台,如淘宝Tanx、百度BES、腾讯ADX/广点通、谷歌ADX、新浪SAX、网易、搜狐等,确保了...

    SAE数据存储的演化

    - **2011年12月2日**:此时SAE已经发展成为国内领先的PaaS平台之一,注册用户数和应用数量持续增长,日均PV也达到了5亿次。 #### 二、数据存储方案的演进 随着SAE的发展,其数据存储方案也经历了不断的优化和升级...

Global site tag (gtag.js) - Google Analytics