nginx转换手记

首先说一下为什么要把apache换成nginx。
在目前的web服务器市场,apache的市场占有率应该在70%左右,可见其应用之广泛。apache有不错的性能及强大的模块配置功能,安全性也不 错。后来发现,很多访问量比较大的网站,都换成了nginx,一个由俄罗斯人开发的开源项目,就下载下为研究了一下,发现其配置上比apache更加简 洁,且可控制项也非常丰富,就决定采用nginx了。至于效率是否会比apache高10倍,本人没有测试过,没有发言权。
首先安装,sudo apt-get install ngnix,版本是0.6.02,应该是一个比较稳定的版本。
其次,安装与php5-cgispawn-fcgi,php5服务器上本来就有,所以不必再安装一次。(前段时候nginx报重大安全漏洞,其实并不是ngnix的漏洞,而是spawn-fcgi上的问题,怎么修改以避免该漏同,大家google一下哈)。
经过上面的操作,就完成了安装,ngnix已经加入到自动启动配置中,接下来,我们要做的,就是修改配置文件,建立虚拟主机。
ubuntu集成nginx与apache后的目录结构非常的相似,在/etc/nginx目录下就是所有需要的东西了。nginx.conf是主配置文 件,一般不用改动,sites-available目录下,是站点虚拟主机配置文件,sites-enabled下是生效的配置(直接建立起sites- available目录下文件的软链接,软链接是我发现的linux下最强大、最有效的功能,如果换为win 平台,我不晓得该怎么做,呵呵)。
下面是一个主机配置示例:
server {
listen   80;
server_name  yourdomain.com;
root /var/www/yousite_doc_root;

access_log  /var/log/nginx/localhost.access.log;

location / {
root /var/www/yousite_doc_root;
index index.html;
}
location ~ \.(jsp|htm|do)$ {
proxy_pass http://youdomain.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 480;
proxy_send_timeout 480;
}
location ~* \.(mp3|wmv|png|jpg|gif|swf)$ {
valid_referers  none  blocked server_names *.yourdomain.com;
if ($invalid_referer) {
rewrite ^/ http://image.yourdomain.com/dl.jpg;
#return 403;
}
}
}
在上面的配置中,要注意的是:
1、location / {}中,请配置上root,虽然上面已经配置过一次。如果不配置,资源访盗链将无法实现,网上的很多配置都是误人子弟的,请大家一定要小心。
2、 proxy_pass http://youdomain.com 是到jsp和*.do的,转到一个后台tomcat集群配置中,效率可能会比apache的ajp13低一些,我会在另一篇文章中介绍。
3、proxy_read_timeout 480;与 proxy_send_timeout 480配置,有助于解决业务执行过程较长的长请求。
4、 proxy_set_header X-Real-IP $remote_addr用于在程序中获得客户真实的ip,当然切换成nginx后,你程序中取ip的代码也得改。


php站点的一个配置实例:
server {
listen 80;
server_name yourdomain.com;
access_log  /var/log/nginx/localhost.access.log;

location / {
root   /var/www/bbs_doc_root/subdir;
index  index.html index.php;
}

location ~ \.php$ {
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  /var/www/bbs_yousitedomain/ucenter$fastcgi_script_name;
include fastcgi_params;
}
}
最后,还需要修改nginx配置文件,将nginx版本号隐藏起来,以访止自动扫描软件发现特定版本的安全露洞。
如有问题,请与我讨论。

本文首发http://www.fudu365.com【英语听力复读网】,转载请保留。

猜你喜欢

转载自ljh2008.iteye.com/blog/832607