FreeBSD7.2下ports方式安装配置“Nginx0.8.24+PHP5.2.11(FastCGI)+ GD+Mysql5.1.40+系统优化+防ddos攻击”
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
版权声明
本文版权归作者所有,如其他个人、第三方网站或媒体报刊等需转载全文或节选,请注明原文链接:
/manual/freebsd-nginx-php-mysql-ports.html
如果因此而给您带来麻烦,请您原谅,谢谢合作。
前言
∙版本:1.0
∙作者:lynn
∙项目主页:
∙个人主页:
∙最后更新:2009-11-11(光棍节)
本文档是在FreeBSD7.2系统下,以ports系统为基础,所涉及软件全部是开源软件,版权以GPL为主,作为企业应用没有任何版权/法律问题。
编写本文的初衷,是给那些希望快速架设高性能、高负载Web服务系统而不想过多了解复杂的系统知识的网管/用户。
本文假定读者是在FreeBSD 7.2 平台上安装,并具有一定的Unix平台 / FreeBSD平台系统经验,懂得ports基本命令及常规的系统操作,如文件的删除,目录创建,改名,和vi编辑器的基本使用等。
源代码方式安装请参考(推荐):
/manual/freebsd-nginx-php-mysql-source.html
目录
∙为什么要选择FreeBSD?
∙为什么要选择Nginx?
∙软件组成
∙安装FreeBSD7.2
∙更新ports
∙安装axel提高ports的安装速度
∙安装Mysql5.1.40
∙安装Nginx
安装pcre8.00
安装Nginx0.8.24
∙安装libxml2-2.7.6
∙安装GD
安装zlib1.2.3
安装libpng1.2.40
安装jpeg v7
安装freetype2.3.11
安装gd2.0.35
∙安装PHP
安装php5.2.11(FastCGI模式)
∙测试
∙系统优化
∙防ddos攻击
∙结束语
∙ChangeLog
为什么要选择FreeBSD?
官方网站:中文网站:/zh_CN/
FreeBSD是一个优秀的unix操作系统,基于宽松的BSD协议,是完美的企业级操作系统,以重点突出性能和安全而闻名,行业领先的企业多年以来一直使用FreeBSD服务器。具有同所有其它开源软件操作系统竞争的高级性能。
1.Unix兼容性强
2.速度快
3.极其稳定、可靠
4.强大的网络功能
5.多用户、多任务
6.使用方便(按照极好的说明文件操作)
为什么要选择Nginx?
Nginx("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个
IMAP/POP3/SMTP 代理服务器。Nginx 是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了。Igor 将源代码以类BSD许可证的形式发布。自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx。
Nginx 是一个很牛的高性能Web和反向代理服务器, 它具有有很多非常优越的特性:
∙在高连接并发的情况下,Nginx是Apache服务器不错的替代品: Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一. 能够支持高达50,000 个并发连接
数的响应, 感谢Nginx为我们选择了epoll and kqueue作为开发模型;
∙内存消耗少:在3万并发连接下,开启10个Nginx进程消耗150M左右内存(15M*10);
∙不要钱:Nginx为开源软件,可以免费使用。而购买F5 BIG-IP、NetScaler等硬件负载均衡交换机刚需要十多万至几十万元人民币;
∙Nginx作为负载均衡服务器: Nginx 既可以在内部直接支持Rails和PHP程序对外进行服务, 也可以支持作为HTTP代理服务器对外进行服务. Nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比Perlbal要好很多;
∙作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm描述了成功并且美妙的使用经验;
∙Nginx 是一个[#installation 安装] 非常的简单,配置文件?非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动. 你还能够不间断服务的情况下进行
软件版本的升级;
∙稳定性高:用于反向代理,宕机的概率微乎其微。
4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还得为系统预留1GB的内存。 Nginx 0.7.51 + PHP 5.2.8 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程消耗150M内存(15M*10=150M),开启的64个php-cgi进程消耗1280M内存(20M*64=1280M),加上系统自身消耗的内存,总共消耗不到2GB内存。如果服务器内存较小,完全可以只开启25个php-cgi进程,这样php-cgi 消耗的总内存数才500M。
为什么Nginx的性能要比Apache高得多?这得益于Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O模型,而Apache则使用的是传统的select模型。目前Linux下能够承受高并发访问的Squid、Memcached都采用的是epoll网络I/O模型。
处理大量的连接的读写,Apache所采用的select网络I/O模型非常低效。下面用一个比喻来解析Apache采用的select模型和Nginx采用的epoll模型进行之间的区别:
假设你在大学读书,住的宿舍楼有很多间房间,你的朋友要来找你。select版楼管大妈就会带着你的朋友挨个房间去找,直到找到你为止。而epoll版楼管大妈会先记下每位同学的房间号,你的朋友来时,只需告诉你的朋友你住在哪个房间即可,不用亲自带着你的朋友满大楼找人。如果来了10000个人,都要找自己住这栋楼的同学时,select版和epoll版楼管大妈,谁的效率更高,不言自明。同理,在高并发服务器中,轮询I/O是最耗时间的操作之一,select和epoll的性能谁的性能更高,同样不言自明了。
软件组成
软件名称版本说明
FreeBSD7.2FreeBSD是一个优秀的unix操作系统,基于宽松的BSD协议
Mysql 5.1.40最受欢迎的开源数据库
pcre8.00(Perl兼容正则表达式)Nginx 所需
Nginx0.8.24很牛的高性能Web和反向代理服务器
libxml2 2.7.6xml c语言版的解析器
zlib 1.2.3支援gzip档案格式的函数库