FreeBSD Nginx 环境搭建教程.docx

上传人:b****5 文档编号:14901399 上传时间:2023-06-28 格式:DOCX 页数:15 大小:35.83KB
下载 相关 举报
FreeBSD Nginx 环境搭建教程.docx_第1页
第1页 / 共15页
FreeBSD Nginx 环境搭建教程.docx_第2页
第2页 / 共15页
FreeBSD Nginx 环境搭建教程.docx_第3页
第3页 / 共15页
FreeBSD Nginx 环境搭建教程.docx_第4页
第4页 / 共15页
FreeBSD Nginx 环境搭建教程.docx_第5页
第5页 / 共15页
FreeBSD Nginx 环境搭建教程.docx_第6页
第6页 / 共15页
FreeBSD Nginx 环境搭建教程.docx_第7页
第7页 / 共15页
FreeBSD Nginx 环境搭建教程.docx_第8页
第8页 / 共15页
FreeBSD Nginx 环境搭建教程.docx_第9页
第9页 / 共15页
FreeBSD Nginx 环境搭建教程.docx_第10页
第10页 / 共15页
FreeBSD Nginx 环境搭建教程.docx_第11页
第11页 / 共15页
FreeBSD Nginx 环境搭建教程.docx_第12页
第12页 / 共15页
FreeBSD Nginx 环境搭建教程.docx_第13页
第13页 / 共15页
FreeBSD Nginx 环境搭建教程.docx_第14页
第14页 / 共15页
FreeBSD Nginx 环境搭建教程.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

FreeBSD Nginx 环境搭建教程.docx

《FreeBSD Nginx 环境搭建教程.docx》由会员分享,可在线阅读,更多相关《FreeBSD Nginx 环境搭建教程.docx(15页珍藏版)》请在冰点文库上搜索。

FreeBSD Nginx 环境搭建教程.docx

FreeBSDNginx环境搭建教程

FreeBSD+Nginx环境搭建教程

2010-03-3012:

27

2010年02月22日星期一下午05:

12

为什么要选择FreeBSD?

官方网站:

www.freebsd.org中文网站:

http:

//www.freebsd.org/zh_CN/

FreeBSD是一个优秀的unix操作系统,基于宽松的BSD协议,是完美的企业级操作系统,以重点突出性能和安全而闻名,行业领先的企业多年以来一直使用FreeBSD服务器。

具有同所有其它开源软件操作系统竞争的高级性能。

1.Unix兼容性强

2.速度快

3.极其稳定、可靠

4.强大的网络功能

5.多用户、多任务

6.使用方便(按照极好的说明文件操作)

为什么要选择Nginx?

Nginx(“enginex”)是一个高性能的HTTP和 反向代理服务器,也是一个IMAP/POP3/SMTP 代理服务器。

Nginx是由 IgorSysoev为俄罗斯访问量第二的Rambler.ru站点开发的,它已经在该站点运行超过四年多了。

Igor将源代码以类BSD许可证的形式发布。

自Nginx发布四年来,Nginx已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。

目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。

新近发现Nginx技术在国内日趋火热,越来越多的网站开始部署Nginx。

Nginx是一个很牛的高性能Web和反向代理服务器,它具有有很多非常优越的特性:

∙在高连接并发的情况下,Nginx是Apache服务器不错的替代品:

Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一.能够支持高达50,000个并发连接数的响应,感谢Nginx为我们选择了 epollandkqueue作为开发模型;

∙内存消耗少:

在3万并发连接下,开启10个Nginx进程消耗150M左右内存(15M*10);

∙不要钱:

Nginx为开源软件,可以免费使用。

而购买F5BIG-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的内存。

Nginx0.7.51+PHP5.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(Linux2.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.2

操作系统的安装建议参考FreeBSDHandbook,在此仅给出链接,以避免不必要的重复劳动:

∙英文版

http:

//www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/install.html

∙中文版

.freebsd.org/doc/zh_CN.GB2312/books/handbook/install.html

安装时的注意事项

1.磁盘分区

由于是WEB服务系统,网站目录都放于/home目录下,因此home分区要有足够的空间。

以一块硬盘146G/内存4G的服务器为例,可做如下分区:

  /1024M

  swap4096M

  /var10G

  /usr20G

  /home110G

  /tmp1024M

2.软件包的选择

我们的WEB服务系统是要对外服务的,所以尽可能少的选择软件包,安装时建议选择Minimal,然后进入Custom选择doc,info,man,src即可。

配置1.编辑/etc/rc.conf确保有如下内容:

  sshd_enable="YES"

  named_enable="YES"

2.根据硬件的配置重新编译内核,编译内核的办法参考FreeBSDHandbook,这里只给出链接:

∙英文版

http:

//www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html

∙中文版

.freebsd.org/doc/zh_CN.GB2312/books/handbook/kernelconfig.html

编译后系统的性能将得到较大的提升。

获取相关开源软件包

本文中提到的所有开源软件包为截止到2009年10月20日的最新稳定版,且均从官方网站下载。

mkdir-p/home/software

cd/home/software

fetchhttp:

//sysoev.ru/nginx/nginx-0.8.24.tar.gz

fetchftp:

//ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.00.tar.gz

fetchftp:

//xmlsoft.org/libxml2/libxml2-2.7.6.tar.gz

fetch

fetchftp:

//ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.40.tar.gz

fetchhttp:

//www.ijg.org/files/jpegsrc.v7.tar.gz

fetch

fetchhttp:

//www.libgd.org/releases/gd-2.0.35.tar.gz

fetch

fetchhttp:

//php-fpm.org/downloads/php-5.2.11-fpm-0.5.13.diff.gz

fetchhttp:

//ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gz

安装Mysql5.1.40

Mysql5.1.40下载地址:

pwgroupaddmysql

pwuseraddmysql-gmysql-d/dev/null-s/sbin/nologin

tarzxvfmysql-5.1.40.tar.gz

cdmysql-5.1.40

./configure–prefix=/usr/local/webserver/mysql/–enable-assembler–with-extra-charsets=complex–enable-thread-safe-client–with-big-tables–with-readline–with-ssl–with-embedded-server–enable-local-infile–with-plugins=innobase

make&&makeinstallclean

chmod+w/usr/local/webserver/mysql

chown-Rmysql:

mysql/usr/local/webserver/mysql

cp/usr/local/webserver/mysql/support-files/my-f/usr/local/webserver/mysql/f

cd..

以mysql用户帐号的身份建立数据表

/usr/local/webserver/mysql/bin/mysql_install_db–datadir=/usr/local/webserver/mysql/data–user=mysql

创建Mysql开机启动脚本

cp/usr/local/webserver/mysql/share/mysql/mysql.server/usr/local/etc/rc.d/mysql.sh

为mysql.sh脚本设置可执行属性

chmod+x/usr/local/etc/rc.d/mysql.sh

修改/etc/rc.conf

vi/etc/rc.conf

加入以下内容

mysql_enable=”YES”

启动Mysql

/usr/local/etc/rc.d/mysql.shstart

安装Nginx

安装Nginx所需的pcre库

tarzxvfpcre-8.00.tar.gz

cdpcre-8.00

./configure

make&&makeinstallclean

cd..

安装Nginx0.8.24

tarzxvfnginx-0.8.24.tar.gz

cdnginx-0.8.24

./configure–user=www–group=www–prefix=/usr/local/webserver/nginx–with-http_stub_status_module–with-http_ssl_module

make&&makeinstallclean

cd..

创建Nginx日志目录

mkdir-p/var/log/nginx

chmod+w/var/log/nginx

chown-Rwww:

www/var/log/nginx

创建Nginx配置文件

rm-f/usr/local/webserver/nginx/conf/nginx.conf

vi/usr/local/webserver/nginx/conf/nginx.conf

输入以下内容:

userwwwwww;

worker_processes8;

error_log/var/log/nginx/error.log;

pid/var/log/nginx/nginx.pid;

worker_rlimit_nofile51200;

events{

usekqueue;

worker_connections51200;

}

http{

includemime.types;

default_typeapplication/octet-stream;

server_names_hash_bucket_size128;

client_header_buffer_size32k;

large_client_header_buffers432k;

client_max_body_size8m;

sendfileon;

tcp_nopushon;

keepalive_timeout30;

tcp_nodelayon;

fastcgi_connect_timeout300;

fastcgi_send_timeout300;

fastcgi_read_timeout300;

fastcgi_buffer_size64k;

fastcgi_buffers464k;

fastcgi_busy_buffers_size128k;

fastcgi_temp_file_write_size128k;

gzipon;

gzip_min_length1k;

gzip_buffers416k;

gzip_http_version1.1;

gzip_comp_level2;

gzip_typestext/plainapplication/x-javascripttext/cssapplication/xml

gzip_varyon;

server{

listen80;

server_namelocalhost;

root/home/excms;

indexindex.htmlindex.htmindex.php;

location~.php${

fastcgi_pass127.0.0.1:

9000;

fastcgi_indexindex.php;

fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;

includefastcgi_params;

}

location/nginx_status{

stub_statuson;

access_logoff;

}

}

}

创建Nginx开机启动脚本

vi/usr/local/etc/rc.d/nginx.sh

加入以下内容

#!

/bin/sh

nginx=/usr/local/webserver/nginx/sbin/nginx

conf=/usr/local/webserver/nginx/conf/nginx.conf

case$1in

start)

echo-n"StartingNginx"

$nginx-c$conf

echo"done"

;;

stop)

echo-n"StoppingNginx"

killall-9nginx

echo"done"

;;

test)

$nginx-t-c$conf

;;

reload)

echo-n"ReloadingNginx"

psauxww|grepnginx|grepmaster|awk'{print$2}'|xargskill-HUP

echo"done"

;;

restart)

$nginxstop

$nginxstart

;;

show)

ps-aux|grepnginx

;;

*)

echo-n"Usage:

$0{start|restart|reload|stop|test|show}"

;;

esac

为nginx.sh脚本设置可执行属性

chmod+x/usr/local/etc/rc.d/nginx.sh

修改/etc/rc.conf

vi/etc/rc.conf

加入以下内容

nginx_enable=”YES”

启动Nginx

/usr/local/etc/rc.d/nginx.shstart

在不停止Nginx服务的情况下平滑变更Nginx配置

修改/usr/local/webserver/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:

/usr/local/etc/rc.d/nginx.shtest

如果屏幕显示以下两行信息,说明配置文件正确:

theconfigurationfile/usr/local/webserver/nginx/conf/nginx.confsyntaxisok

theconfigurationfile/usr/local/webserver/nginx/conf/nginx.confwastestedsuccessfully

平滑变更Nginx配置

/usr/local/etc/rc.d/nginx.shreload

安装GD

安装zlib

tarzxvfzlib-1.2.3.tar.gz

cdzlib-1.2.3

./configure

make&&makeinstallclean

cd..

安装libpng

tarzxvflibpng-1.2.40.tar.gz

cdlibpng-1.2.40

./configure

make&&makeinstallclean

cd..

安装jpeg

tarzxvfjpegsrc.v7.tar.gz

cdjpeg-7

./configure–prefix=/usr/local/jpeg7-enable-shared-enable-static

make&&makeinstallclean

cd..

安装freetype

tarzxvffreetype-2.3.11.tar.gz

cdfreetype-2.3.11

./configure

make&&makeinstallclean

cd..

安装gd2.0.35

tarzxvfgd-2.0.35.tar.gz

cdgd-2.0.35

./configure--prefix=/usr/local/gd2--with-jpeg=/usr/local/jpeg7--width-png--width-zlib--width-freetype

make&&makeinstallclean

cd..

安装libxml2

tar-zxvflibxml2-2.7.6.tar.gz

cdlibxml2-2.7.6

./configure

make&&makeinstallclean

cd..

安装PHP5.2.11

编译安装PHP5.2.11所需的支持库libiconv

tarzxvflibiconv-1.13.tar.gz

cdlibiconv-1.13

./configure–prefix=/usr/local

make&&makeinstallclean

cd..

编译安装PHP(FastCGI模式)

tarzxvfphp-5.2.11.tar.gz

gzip-cdphp-5.2.11-fpm-0.5.13.diff.gz|patch-dphp-5.2.11-p1

cdphp-5.2.11

./configure–prefix=/usr/local/webserver/php–with-config-file-path=/usr/local/webserver/php/etc–with-mysql=/usr/local/webserver/mysql–with-iconv-dir–with-freetype-dir–with-jpeg-dir–with-png-dir–with-zlib–with-gd–enable-gd-native-ttf–with-libxml-dir–enable-xml–disable-rpath–enable-discard-path–enable-safe-mode–enable-bcmath–enable-shmop–enable-sysvsem–enable-inline-optimization–with-curlwrappers–enable-mbregex–enable-fastcgi–enable-fpm–enable-force-cgi-redirect–enable-mbstring–with-openssl–enable-pcntl–enable-sockets

makeZEND_EXTRA_LIBS=’-liconv’

makeinstallclean

cpphp.ini-dist/usr/local/webserver/php/etc/php.ini

cd..

安装ZendOptimizer

ZendOptimizer官方下载地址:

tarzxvfZendOptimizer-3.3.9-freebsd6.0-i386.tar.gz

cdZendOptimizer-3.3.3-freebsd6.0-i386

ln-s/usr/lib/libc.so/usr/lib/libc.so.6

ln-s/usr/lib/libcrypt.so/usr/lib/libcrypt.so.3

ln-s/usr/lib/libutil.so/usr/lib/libutil.so.5

ln-s/usr/lib/libm.so/usr/lib/libm.so.4

./install-tty

cd..

安装过程中的提示全默认就可以,指定php.ini文件路

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2