安装 - FreeBSD + Nginx 环境搭建教程(推荐)
返回主目录返回上级目录
前言:本文是关于如何搭建基于“FreeBSD7.2 + Nginx0.8.24 + PHP5.2.11(FastCGI) + GD2.0.53 + ZendOptimizer3.3.9 + Mysql5.1.40 + 系统优化 + 防ddos攻击”高性能、高负载Web服务器的文章,安装方式为源代码安装。
Ports 方式安装请参考: s/manual/freebsd-nginx-php-mysql-ports.html
Ports 方式安装请参考: s/manual/freebsd-nginx-php-mysql-ports.html
文档目录
∙ 为什么要选择 FreeBSD?
∙ 为什么要选择 Nginx?
∙ 安装 FreeBSD7.2
∙ 获取相关开源软件包
∙ 安装 Mysql5.1.40
∙ 安装 Nginx
安装 pcre8.00
安装 Nginx0.8.24
∙ 安装 libxml2-2.7.6
∙ 安装 GD
安装 zlib1.2.3
安装 libpng1.2.40
安装 jpeg7
安装 freetype2.3.11
安装 gd2.0.35
∙ 安装 PHP
安装 libiconv1.13
安装 php5.2.11(FastCGI模式)
安装 ZendOptimizer3.3.9
∙ 测试
∙ 系统优化
∙ 防ddos攻击
为什么要选择 FreeBSD?
: 中文网站:/zh_CN/
FreeBSD是一个优秀的unix操作系统,基于宽松的BSD协议,是完美的企业级操作系统,以重点突出性能和安全而闻名,行业领先的企业多年以来一直使用FreeBSD服务器。具有同所有其它开源软件操作系统竞争的高级性能。
1. Unix兼容性强
2. 速度快
3. 极其稳定、可靠
4. 强大的网络功能
5. 多用户、多任务
6. 使用方便(按照极好的说明文件操作)
mysql下载后为什么不是一个安装包为什么要选择 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版楼管大妈会先记下每位同学的房
处理大量的连接的读写,Apache所采用的select网络I/O模型非常低效。下面用一个比喻来解析Apache采用的select模型和Nginx采用的epoll模型进行之间的区别:
假设你在大学读书,住的宿舍楼有很多间房间,你的朋友要来你。select版楼管大妈就会带着你的朋友挨个房间去,直到到你为止。而epoll版楼管大妈会先记下每位同学的房
间号,你的朋友来时,只需告诉你的朋友你住在哪个房间即可,不用亲自带着你的朋友满大楼人。如果来了10000个人,都要自己住这栋楼的同学时,select版和epoll版楼管大妈,谁的效率更高,不言自明。同理,在高并发服务器中,轮询I/O是最耗时间的操作之一,select和epoll的性能谁的性能更高,同样不言自明了。
安装 FreeBSD7.2
操作系统的安装建议参考FreeBSD Handbook,在此仅给出链接,以避免不必要的重复劳动:
∙ 英文版
/doc/en_US.ISO8859-1/books/handbook/install.html
∙ 中文版
/doc/zh_CN.GB2312/books/handbook/install.html
安装时的注意事项
1. 磁盘分区
由于是WEB服务系统,网站目录都放于/home目录下,因此home分区要有足够的空间。以一块硬盘146G/内存4G的服务器为例,可做如下分区:
/ 1024M
swap 4096M
/var 10G
/usr 20G
/home 110G
/tmp 1024M
swap 4096M
/var 10G
/usr 20G
/home 110G
/tmp 1024M
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论