利用Ngin_替代apache实现高性能的Web环境.doc_第1页
利用Ngin_替代apache实现高性能的Web环境.doc_第2页
利用Ngin_替代apache实现高性能的Web环境.doc_第3页
利用Ngin_替代apache实现高性能的Web环境.doc_第4页
利用Ngin_替代apache实现高性能的Web环境.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

利用Nginx替代apache实现高性能的Web环境利用Nginx替代apache实现高性能的Web环境Nginx介绍:Nginx发音为engine x,是由俄罗斯人Igor Sysoev建立的项目,基于BSD许可。据说他当初是F5的成员之一,英文主页:。俄罗斯的一些大网站已经使用它超过两年多了, 一直表现不凡,相信想了解nginx的朋友都读过阿叶大哥的利用nginx实现负载均衡的文章相关链接见(六)。测试环境:红动中国(redocn)提供运营服务器环境.关于红动服务环境:红动中国在早期利用apache环境,再加上一些优化的工作,一直是相对很稳定,但是最近由于网站发展,访问量越来越大,在线人数一多经常出现,负载过高,性能急剧下降,经过双木站长的同意,考虑是否能利用nginx来代替apache,经过长时间的观察目前nginx工作很稳定,系统也不会再说现高负载的状况,占用内存也很低,访问速率从用户体验来看明显有提升.关于红动中国:红动中国(redocn)论坛经过近1年的快速发展,目前日均页面访问量超过100万,位居全球设计论坛(中文)第1位,是国内最具影响力的设计论坛之一。目前论坛拥有近20万会员,包括众多设计界领军人物在内的行业中坚力量、相关艺术院校师生以及部分设计爱好者等。迁移目标:实现网站论坛静态化,防盗链,下载并发数和速率限制,实现原站apache所具有的所有功能,将原apache环境下的站点全部迁移到Nginx一.PHP(Fastcgi)编译安装rootatt php-5.2.4# cat in.sh./configure prefix=/usr/local/php-fcgi enable-fastcgi enable-discard-path enable-force-cgi-redirect with-config-file-path=/usr/local/php-fcgi/etc enable-zend-multibyte with-mysql=/usr/local/mysql with-libxml-dir=/usr/local/libxml2 with-gd=/usr/local/gd2 with-jpeg-dir with-png-dir with-bz2 with-freetype-dir with-iconv-dir with-zlib-dir with-openssl=/usr/local/openssl with-mcrypt=/usr/local/libmcrypt enable-sysvsem enable-inline-optimization enable-soap enable-gd-native-ttf enable-ftp enable-mbstring enable-exif disable-debug disable-ipv6makemake installcp php.ini-dist /usr/local/php-fcgi/etc/php.ini复制代码注:关于如何安装gd库,mysql的编译安装,本文将不介绍,本文重点在于介绍nginx的安装与配置,如想了解其它相关的问题可以到LinuxPk去找相关的贴子()二.Nginx编译安装1.创建nginx运行用户和虚拟主机目录groupadd www -g 48useradd -u 48 -g www wwwmkdir -p /data/www/wwwrootchown -R www:www /data/www/wwwroot复制代码2.安装lighttpd中附带的spawn-fcgi,用来启动php-cgi先编译安装lighttpd产生spawn-fcgi二进制文件.cd /usr/local/src/lighttpd-1.4.18/cp src/spawn-fcgi /usr/local/php-fcgi/bin/复制代码启动php-cgi进程,监听的8085端口,进程数为250(如果服务器内存小于3GB,可以只开启25个进程),用户为www:/usr/local/php-fcgi/bin/spawn-fcgi -a -p 8085 -C 250 -u www -f /usr/local/php-fcgi/bin/php-cgi3.nginx的安装与配置安装Nginx所需的pcre库:/exim/pcre/pcre-7.3.tar.gz tar zxvf pcre-7.2.tar.gzcd pcre-7.2/./configuremake & make installcd ./http:/sysoev.ru/nginx/nginx-0.5.32.tar.gztar zxvf nginx-0.5.32.tar.gzcd nginx-0.5.32./configure user=www group=www prefix=/usr/local/nginx/ with-http_stub_status_module with-openssl=/usr/local/opensslmake & make install复制代码此模块非核心模块,需要在编译的时候手动添加编译参数 with-http_stub_status_module配置nginx三.Nginx主配置文件及PHP支持.1.nginx.conf 主配置文件的配置#cd /usr/local/nginx/conf/#cp nginx.conf nginx.conf.cao#cat /dev/null nginx.conf#vi nginx.conf /主配置文件user www www;worker_processes 10;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;pid /var/run/nginx.pid;#Specifies the value for maximum file descriptors that can be opened by this process.worker_rlimit_nofile 51200;eventsuse epoll;#maxclient = worker_processes * worker_connections / cpu_numberworker_connections 51200;httpinclude conf/mime.types;default_type application/octet-stream;log_format main $remote_addr - $remote_user $time_local $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for;#access_log /data/www/logs/access.log main;#sendfile on;tcp_nopush on;tcp_nodelay off;keepalive_timeout 60;client_header_timeout 3m;client_body_timeout 3m;send_timeout 3m;connection_pool_size 256;client_header_buffer_size 1k;large_client_header_buffers 4 2k;request_pool_size 4k;output_buffers 4 32k;postpone_output 1460;client_max_body_size 10m;client_body_buffer_size 256k;client_body_temp_path /dev/shm/client_body_temp;proxy_temp_path /usr/local/nginx/proxy_temp;fastcgi_temp_path /usr/local/nginx/fastcgi_temp;#gzipgzip on;gzip_http_version 1.0;gzip_comp_level 2;gzip_proxied any;gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml rss text/javascript;gzip_min_length 1100;gzip_buffers 4 8k;# The following includes are specified for virtual hosts /以下是加载虚拟主机配置.#include conf/vhosts/www_redocn_com.conf;#include conf/vhosts/bbs_redocn_com.conf;#include conf/vhosts/blog_redocn_com.conf;#include conf/vhosts/down_redocn_com.conf;复制代码2.配置支持Fastcgi模式的PHProotredocn conf# cat enable_php5.conffastcgi_pass :8085;fastcgi_index index.php;fastcgi_param GATEWAY_INTERFACE CGI/1.1;fastcgi_param SERVER_SOFTWARE nginx;#new ac upload#fastcgi_pass_request_body off;#client_body_in_file_only clean;#fastcgi_param REQUEST_BODY_FILE $request_body_file;#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 $fastcgi_script_name;fastcgi_param REQUEST_URI $request_uri;fastcgi_param DOCUMENT_URI $document_uri;fastcgi_param DOCUMENT_ROOT $document_root;fastcgi_param SERVER_PROTOCOL $server_protocol;fastcgi_param REMOTE_ADDR $remote_addr;fastcgi_param REMOTE_PORT $remote_port;fastcgi_param SERVER_ADDR $server_addr;fastcgi_param SERVER_PORT $server_port;fastcgi_param SERVER_NAME $server_name;# PHP only, required if PHP was built with enable-force-cgi-redirectfastcgi_param REDIRECT_STATUS 200;复制代码四,多虚拟主机应用配置案例.#mkdir /usr/local/nginx/conf/vhosts /建立虚拟主机配置存放目录.1. /首站配置rootredocn vhosts#vi www_redocn_com.confserverlisten 80;server_name ;index index.html index.htm index.php;root /data/www/wwwroot;error_page 404 ;rewrite /bbs/(.*) /$1;location .*.php?$include conf/enable_php5.conf;复制代码注: 关于rewite需求,红动中国希望当用户访问/bbs的时候自动转至在原apache中利用redirect实现 Redirect /bbs 本文中在nginx下利用rewrite实现:rewrite /bbs/(.*) /$1;2.rootredocn vhosts vi bbs_redocn_com.confserverlisten 80;server_name ;index index.html index.htm index.php;root /home/www/htdocs/bbs;access_log /var/log/nginx/access_.log combined;location / #bbs rewriterewrite /archiver/(fid|tid)-w- .html)$ /archiver/index.php?$1 last;rewrite /forum-(0-9 )-(0-9 ).html$ /forumdisplay.php?fid=$1&page=$2 last;rewrite /thread-(0-9 )-(0-9 )-(0-9 ).html$ /viewthread.php?tid=$1&extra=page=$3&page=$2 last;rewrite /space-(username|uid)-(. ).html$ /space.php?$1=$2 last;rewrite /tag-(. ).html$ /tag.php?name=$1 last;break;#errorerror_page 404 /index.php;#redirect server error pages to the static page /50x.htmlerror_page 500 502 503 504 /50x.html;location = /50x.html root html;#Preventing hot linking of images and other file typeslocation * . .(gif|jpg|png|swf|flv|rar|zip)$ valid_referers none blocked server_names*. *. *. *. *. *. *.*.;if ($invalid_referer) rewrite / /images/redocn.gif;#return 403;#support phplocation .*.php?$include conf/enable_php5.conf;复制代码注:1.红动中国采用高性能的Discuz!论坛,原apache的rewrite规则几乎不要做什么修改即可全部移植到nginx下.静态化配置见面上面的:#bbs rewrite部分.2.一般论坛都希望实现防盗链功能,在apache很轻松实现?在nginx下是否容易实现呢?答案是肯定的. #Preventing hot linking of images and other file typesvalid_referers none blocked server_names *. 你允许连接的网址;if ($invalid_referer) rewrite / /images/redocn.gif; /让别人盗链时显示你指定的图片.#return 403;复制代码3.rootredocn vhosts#vi blog_redocn_com.confserverlisten 80;server_name ;index index.html index.htm index.php;root /data/www/wwwroot/blog;error_page 404 ;#supsite rewriterewrite (0-9 )/spacelist(.*)$ index.php?$1/action_spacelist$2;rewrite (0-9 )/viewspace_(. )$ index.php?$1/action_viewspace_itemid_$2;rewrite (0-9 )/viewbbs_(. )$ index.php?$1/action_viewbbs_tid_$2;rewrite (0-9 )/(.*)$ index.php?$1/$2;rewrite (0-9 )$ index.php?$1;rewrite action_(. )$ index.php?action_$1;rewrite category_(. )$ index.php?action_category_catid_$1;rewrite itemlist_(. )$ index.php?action_itemlist_catid_$1;rewrite viewnews_(. )$ index.php?action_viewnews_itemid_$1;rewrite viewthread_(. )$ index.php?action_viewthread_tid_$1;rewrite index(.a-zA-Z0-9*)$ index.php;rewrite html/(0-9 )/viewnews_itemid_(0-9 ).html$ index.php?action_viewnews_itemid_$2;rewrite /(0-9 )/spacelist(. )$ /index.php?uid/$1/action/spacelist/type$2;rewrite /(0-9 )/viewspace(. )$ /index.php?uid/$1/action/viewspace/itemid$2;rewrite /(0-9 )/viewbbs(. )$ /index.php?uid/$1/action/viewbbs/tid$2;rewrite /(0-9 )/(.*)$ /index.php?uid/$1/$2;rewrite /(0-9 )$ /index.php?uid/$1;rewrite /action(. )$ /index.php?action$1;rewrite /category(. )$ /index.php?action/category/catid$1;rewrite /viewnews(. )$ /index.php?action/viewnews/itemid$1;rewrite /viewthread(. )$ /index.php?action/viewthread/tid$1;rewrite /mygroup(. )$ /index.php?action/mygroup/gid$1;location .*.php?$include conf/enable_php5.conf;复制代码注:blog采用功能强大的Supesite作为Blog站点: /1.Blog如何在Nginx里实现静态化,具体设置见,上面的#supesite rootredocn vhosts# vi down_redocn_com.conflimit_zone one $binary_remote_addr 10m;serverlisten 80;server_name ;index index.html index.htm index.php;root /data/www/wwwroot/down;error_page 404 /index.php;# redirect server error pages to the static page /50x.htmlerror_page 500 502 503 504 /50x.html;location = /50x.html root html;#Zone limitlocation / limit_conn one 1;limit_rate 20k;# serve static fileslocation /(images|javascript|js|css|flash|media|

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论