服务器的大用户量的承载方案 + ngxin 虚拟目录

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

服务器的大用户量的承载方案一、前言二、编译安装三、安装MySQL、memcache四、安装Apache、PHP、eAccelerator、php-memcache五、安装Squid六、后记一、前言,准备工作当前,LAMP开发模式是WEB开发的首选,如何搭建一个高效、可靠、稳定的WEB服务器一直是个热门主题,本文就是这个主题的一次尝试。我们采用的架构图如下:引用----------------------------------------------------|客户端|===|负载均衡器|===|反向代理/缓存|===|WEB服务器|===|数据库服务器|----------------------------------------------------NginxSquidApache,PHPMySQLeAccelerator/memcache准备工作:引用服务器:Intel(R)Xeon(TM)CPU3.00GHz*2,2GBmem,SCISC硬盘操作系统:CentOs4.4,内核版本2.6.9-22.ELsmp,gcc版本3.4.4软件:Apache2.2.3(能使用MPM模式)PHP5.2.0(选用该版本是因为5.2.0的引擎相对更高效)eAccelerator0.9.5(加速PHP引擎,同时也可以加密PHP源程序)memcache1.2.0(用于高速缓存常用数据)libevent1.2a(memcache工作机制所需)MySQL5.0.27(选用二进制版本,省去编译工作)Nginx0.5.4(用做负载均衡器)squid-2.6.STABLE6(做反向代理的同时提供专业缓存功能)二、编译安装一、)安装Nginx1.)安装Nginx发音为[enginex],是由俄罗斯人IgorSysoev建立的项目,基于BSD许可。据说他当初是F5的成员之一,英文主页:[url][/url]。俄罗斯的一些大网站已经使用它超过两年多了,一直表现不凡。Nginx的编译参数如下:[root@localhost]#./configure--prefix=/usr/local/server/nginx--with-openssl=/usr/include\--with-pcre=/usr/include/pcre/--with-http_stub_status_module--without-http_memcached_module\--without-http_fastcgi_module--without-http_rewrite_module--without-http_map_module\--without-http_geo_module--without-http_autoindex_module在这里,需要说明一下,由于Nginx的配置文件中我想用到正则,所以需要pcre模块的支持。我已经安装了pcre及pcre-devel的rpm包,但是Ngxin并不能正确找到.h/.so/.a/.la文件,因此我稍微变通了一下:[root@localhost]#mkdir/usr/include/pcre/.libs/[root@localhost]#cp/usr/lib/libpcre.a/usr/include/pcre/.libs/libpcre.a[root@localhost]#cp/usr/lib/libpcre.a/usr/include/pcre/.libs/libpcre.la然后,修改objs/Makefile大概在908行的位置上,注释掉以下内容:./configure--disable-shared接下来,就可以正常执行make及makeinstall了。2.)修改配置文件/usr/local/server/nginx/conf/nginx.conf以下是我的nginx.conf内容,仅供参考:#运行用户usernobodynobody;#启动进程worker_processes2;#全局错误日志及PID文件error_loglogs/error.lognotice;pidlogs/nginx.pid;#工作模式及连接数上限events{useepoll;worker_connections1024;}#设定http服务器,利用它的反向代理功能提供负载均衡支持http{#设定mime类型includeconf/mime.types;default_typeapplication/octet-stream;#设定日志格式log_formatmain'$remote_addr-$remote_user[$time_local]''$request$status$bytes_sent''$http_referer$http_user_agent''$gzip_ratio';log_formatdownload'$remote_addr-$remote_user[$time_local]''$request$status$bytes_sent''$http_referer$http_user_agent''$http_range$sent_http_content_range';#设定请求缓冲client_header_buffer_size1k;large_client_header_buffers44k;#开启gzip模块gzipon;gzip_min_length1100;gzip_buffers48k;gzip_typestext/plain;output_buffers132k;postpone_output1460;#设定accesslogaccess_loglogs/access.logmain;client_header_timeout3m;client_body_timeout3m;send_timeout3m;sendfileon;tcp_nopushon;tcp_nodelayon;keepalive_timeout65;#设定负载均衡的服务器列表upstreammysvr{#weigth参数表示权值,权值越高被分配到的几率越大#本机上的Squid开启3128端口server192.168.8.1:3128weight=5;server192.168.8.2:80weight=1;server192.168.8.3:80weight=6;}#设定虚拟主机server{listen80;server_name192.168.8.1[url][/url];charsetgb2312;#设定本虚拟主机的访问日志access_loglogs/如果访问/img/*,/js/*,/css/*资源,则直接取本地文件,不通过squid#如果这些文件较多,不推荐这种方式,因为通过squid的缓存效果更好location~^/(img|js|css)/{root/data3/Html;expires24h;}#对/启用负载均衡location/{proxy_pass[url][/url];proxy_redirectoff;proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;client_max_body_size10m;client_body_buffer_size128k;proxy_connect_timeout90;proxy_send_timeout90;proxy_read_timeout90;proxy_buffer_size4k;proxy_buffers432k;proxy_busy_buffers_size64k;proxy_temp_file_write_size64k;}#设定查看Nginx状态的地址location/NginxStatus{stub_statuson;access_logon;auth_basicNginxStatus;auth_basic_user_fileconf/htpasswd;}}}备注:conf/htpasswd文件的内容用apache提供的htpasswd工具来产生即可,内容大致如下:3.)查看Nginx运行状态输入地址[url][/url],输入验证帐号密码,即可看到类似如下内容:Activeconnections:328serveracceptshandledrequests9309898228890Reading:1Writing:3Waiting:324第一行表示目前活跃的连接数第三行的第三个数字表示Nginx运行到当前时间接受到的总请求数,如果快达到了上限,就需要加大上限值了。第四行是Nginx的队列状态三、安装MySQL、memcache1.)安装MySQL,步骤如下:[root@localhost]#tarzxfmysql-standard-5.0.27-linux-i686.tar.gz-C/usr/local/server[root@localhost]#mv/usr/local/server/mysql-standard-5.0.27-linux-i686/usr/local/server/mysql[root@localhost]#cd/usr/local/server/mysql[root@localhost]#./scripts/mysql_install_db--basedir=/usr/local/server/mysql\--datadir=/usr/local/server/mysql/data--user=nobody[root@localhost]#cp/usr/local/server/mysql/support-files/my-large.cnf\/usr/local/server/mysql/data/my.cnf2.)修改MySQL配置,增加部分优化参数,如下:[root@localhost]#vi/usr/local/server/mysql/data/my.cnf主要内容如下:[mysqld]basedir=/usr/local/server/mysqldatadir=/usr/local/server/mysql/datauser=nobodyport=3306socket=/tmp/mysql.sockwait_timeout=30long_query_time=1#log-queries-not-using-indexes=TRUElog-slow-queries=/usr/local/server/mysql/slow.loglog-error=/usr/local/server/mysql/error.logexternal-locking=FALSEkey_buffer_size=512Mback_log=400table_cache=512sort_buffer_size=2Mjoin_buffer_size=4Mread_buffer_size=2Mread_rnd_buffer_size=4Mmyisam_sort_buffer_size=64Mthread_cache_size=32query_cache_limit=2Mquery_cache_size=64Mthread_concurrency=4thread_stack=128Ktmp_table_size=64Mbinlog_cache_size=2Mmax_binlog_size=128Mmax_binlog_cache_si

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功