您现在的位置:主页 > 服务器 > Linux服务器 >

CentOS 5.6(X64)下编译安装LNMP平台(Nginx1.0.4+PHP5.3.6+Mysql5

来源:新2备用网址hg622.com|首页吧 责任编辑:Jzq8 发表时间:2011-12-15 点击:次

系统环境:centos?5.6(x64)+Nginx?1.0.4+Mysql?5.5.12?+?PHP?5.3.6

软件包存放位置?/usr/local/src/websoft

###########本文另附配置文档,配置文档在附件里#################

Nginx(发音同?engine?x)是一款轻量级的Web?服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like?协议下发行。由俄罗斯的程序设计师Igor?Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用。??其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用nginx网站用户有:新浪、网易、?腾讯,另外知名的微网志Plurk也使用nginx。

总体来说nginx的有以下八大优点:

1.高并发连接:官方测试能支撑5万并发连接,在实际生产环境中跑到2,~3W并发连接。

2.内存消耗少:在3W并发连接下,开启的10个NGINX进程才消耗150M内存(15M*10=150M)

3.配置文件非常简单:风格跟程序一样通俗易懂。

4.成本低廉:Nginx作为开源软件,可以免费使用,而购买F5?BIG-IP、NetScaler

等硬件负载均衡交换机则需要十多万至几十万人民币。

5.支持rewrite重写规则:能够根据域名、URL的不同,将HTTP请求分发到不同的后端服务器群组。

6.内置的健康检查功能:如果Nginx?Proxy后端的后台web服务器宕机了,不会音响前端访问。

7.节省带宽:支持GZIP压缩,可以添加浏览器本地缓存的Header头。

8.稳定性高:用于反向代理,宕机的概率微乎其微。

客户端在访问动态页面时,因为apache和nginx只能提供静态解析,这是他们通过内置的cgi接口去寻找php等脚本语言,当需要用到数据部分时PHP会去调用后台MYSQL数据库中的数据,之后通过解析生成静态页面在返回apache/nginx服务器,再由此交付给客户端。那么nginx如何调用php提供动态php格式的网页,那么就通过FastCGI来实现,后面安装php的时候会讲解

1、首先安装编译所需要的库文件和编译环境,这里我用的光盘的yum源

yum?-y?install?gcc?openssl-devel?zlib-devel?pcre-devel?libjpeg-devel?libpng-devel?libtool-ltdl-devel?

yum?groupinstall?"Development?Tools"?"Development?Libraries"?-y

2、下载源码包

#cd??/usr/local/src/websoft

#vim?download.txt????//拷贝下面的内容到文件里

wget?http://www.nginx.org/download/nginx-1.0.4.tar.gz

wget?http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz

wget?http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.12.tar.gz/from/http://ftp.iij.ad.jp/pub/db/mysql

wget?http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz

wget?http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?modtime=1171868460&big_mirror=0

wget?ttp://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz?modtime=1194463373&big_mirror=0

wget?http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?modtime=1175740843&big_mirror=0

wget?wget?http://cn.php.net/get/php-5.3.6.tar.gz/from/this/mirror

wget?http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2

wget?http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz

#wget?-i?download.txt??//下载这些软件包

3、Nginx?安装

useradd?-s?/sbin/nologin?-M?nginx

cd?/usr/local/src/websoft

tar?zxvf?nginx-1.0.4.tar.gz

cd?nginx-1.0.4/

./configure?--user=nginx?--group=nginx?\

--prefix=/usr/local/webserver/nginx??\

--sbin-path=/usr/sbin/nginx?\

--conf-path=/etc/nginx/nginx.conf?\

--with-http_stub_status_module??\

--with-http_ssl_module?\

--without-http_rewrite_module?\

?--lock-path=/var/lock/nginx.lock?\

--pid-path=/var/run/nginx/nginx.pid??\

--with-pcre??//这个一定要加,不加启动nginxd会报错

make?&&?make?install

vim?/etc/init.d/nginxd/???//添加下面内容,让nginx?支持service?启动关闭

#!/bin/sh

#

#?nginx?-?this?script?starts?and?stops?the?nginx?daemon

#

#?chkconfig:???-?85?15?

#?description:??Nginx?is?an?HTTP(S)?server,?HTTP(S)?reverse?\

#???????????????proxy?and?IMAP/POP3?proxy?server

#?processname:?nginx

#?config:??????/etc/nginx/nginx.conf

#?config:??????/etc/sysconfig/nginx

#?pidfile:?????/var/run/nginx.pid

#?Source?function?library.

.?/etc/rc.d/init.d/functions

#?Source?networking?configuration.

.?/etc/sysconfig/network

#?Check?that?networking?is?up.

[?"$NETWORKING"?=?"no"?]?&&?exit?0

nginx="/usr/sbin/nginx"

prog=$(basename?$nginx)

NGINX_CONF_FILE="/etc/nginx/nginx.conf"

[?-f?/etc/sysconfig/nginx?]?&&?.?/etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

make_dirs()?{

???#?make?required?directories

???user=`nginx?-V?2>&1?|?grep?"configure?arguments:"?|?sed?'s/[^*]*--user=\([^?]*\).*/\1/g'?-`

???options=`$nginx?-V?2>&1?|?grep?'configure?arguments:'`

???for?opt?in?$options;?do

???????if?[?`echo?$opt?|?grep?'.*-temp-path'`?];?then

???????????value=`echo?$opt?|?cut?-d?"="?-f?2`

???????????if?[?!?-d?"$value"?];?then

???????????????#?echo?"creating"?$value

???????????????mkdir?-p?$value?&&?chown?-R?$user?$value

???????????fi

???????fi

???done

}

start()?{

????[?-x?$nginx?]?||?exit?5

????[?-f?$NGINX_CONF_FILE?]?||?exit?6

????make_dirs

????echo?-n?$"Starting?$prog:?"

????daemon?$nginx?-c?$NGINX_CONF_FILE

????retval=$?

????echo

????[?$retval?-eq?0?]?&&?touch?$lockfile

????return?$retval

}

stop()?{

????echo?-n?$"Stopping?$prog:?"

????killproc?$prog?-QUIT

????retval=$?

????echo

????[?$retval?-eq?0?]?&&?rm?-f?$lockfile

????return?$retval

}

restart()?{

????configtest?||?return?$?

????stop

????sleep?1

????start

}

reload()?{

????configtest?||?return?$?

????echo?-n?$"Reloading?$prog:?"

????killproc?$nginx?-HUP

????RETVAL=$?

????echo

}

force_reload()?{

????restart

}

configtest()?{

??$nginx?-t?-c?$NGINX_CONF_FILE

}

rh_status()?{

????status?$prog

}

rh_status_q()?{

????rh_status?>/dev/null?2>&1

}

case?"$1"?in

????start)

????????rh_status_q?&&?exit?0

????????$1

????????;;

????stop)

????????rh_status_q?||?exit?0

????????$1

????????;;

????restart|configtest)

????????$1

????????;;

????reload)

????????rh_status_q?||?exit?7

????????$1

????????;;

????force-reload)

????????force_reload

????????;;

????status)

????????rh_status

????????;;

????condrestart|try-restart)

????????rh_status_q?||?exit?0

????????????;;

????*)

????????echo?$"Usage:?$0?{start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"

????????exit?2

esac

chmod?+x?/etc/init.d/nginxd

service?nginxd?start

chkconfig?--add?nginxd

chkconfig?nginxd?on

chkconfig?--list?nginxd

通过浏览器访问服务器,出现welcome?to?nginx!表示成功

4、编译安装mysql

?编译环境前提(mysql?5.5.x?不再用?configure,而用cmake)

?#?yum?-y?install???gcc?gcc-c++?make?ncurses-devel????????//安装所需的软件包

?#cd?/usr/local/src/websoft

?#tar?xvf??cmake-2.8.4.tar.gz

?#?cd?cmake-2.8.4

?#?./configure?&&?make?&&?make?install

cd?/usr/local/src/websoft

?#?tar?zxvf?mysql-5.5.12.tar.gz

?#?cd?mysql-5.5.12

?#?cmake?-DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql?\

?????????-DMYSQL_DATADIR=/data/mysql/?\

?????????-DWITH_MYISAM_STORAGE_ENGINE=1?\

?????????-DWITH_INNOBASE_STORAGE_ENGINE=1?\

?????????-DWITH_ARCHIVE_STORAGE_ENGINE=1?\

?????????-DWITH_BLACKHOLE_STORAGE_ENGINE=1?\

?????????-DENABLED_LOCAL_INFILE=1?\

?????????-DDEFAULT_CHARSET=utf8?\

?????????-DDEFAULT_COLLATION=utf8_general_ci?\

?????????-DEXTRA_CHARSETS=all?\

?????????-DMYSQL_TCP_PORT=3306?

?

#?make?

#?make?install

参数说明:

?-DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql???//安装目录

?-DMYSQL_DATADIR=/data/mysql??????????//数据库存放目录

?-DWITH_MYISAM_STORAGE_ENGINE=1?????//安装myisam存储引擎

?-DWITH_INNOBASE_STORAGE_ENGINE=1???//安装innodb存储引擎

?-DWITH_ARCHIVE_STORAGE_ENGINE=1?????//安装archive存储引擎

?-DWITH_BLACKHOLE_STORAGE_ENGINE=1?//安装blackhole存储引擎

?-DENABLED_LOCAL_INFILE=1?????????????//允许从本地导入数据

?-DDEFAULT_CHARSET=utf8?  ??????????//使用utf8字符

?-DDEFAULT_COLLATION=utf8_general_ci??//校验字符

?-DEXTRA_CHARSETS=all? ???????????? //安装所有扩展字符集

?-DMYSQL_TCP_PORT=3306??????????????//MySQL监听端口

mysql?配置

?#?groupadd?-g?3306?mysql

?#?useradd?-u?3306?-g?mysql?-M?-s?/sbin/nologin?mysql

?#?mkdir?/data/mysql/data

?#?mkdir?/data/mysql/log

?#?chown?-R?mysql:mysql?/data/mysql

?#?chmod?-R?755?/data/mysql

?#?cp?support-files/my-medium.cnf?/etc/my.cnf

?#/usr/local/webserver/mysql/scripts/mysql_install_db? --user=mysql?--basedir=/usr/local/webserver/mysql?--datadir=/data/mysql?&???//初始化数据库

?#?/usr/local/webserver/mysql/bin/mysqld_safe?--user=mysql?&?以mysql???//用户启动服务?

?#?cp?support-files/mysql.server?/etc/init.d/mysqld

?#?chmod?+x?/etc/init.d/mysqld

?#?chkconfig?--add?mysqld

?#?chkconfig??mysqld?on

?#?service?mysqld?restart

?#?netstat?-tnlp?|grep?3306

?#?cd?/usr/local/bin?//进入用户的默认搜索路径下建立mysql命令的软连接,可以直接执行mysql命令

?#?ln?-s?/usr/local/webserver/mysql/bin/mysql?mysql

?#?ln?-s?/usr/local/webserver/mysql/bin/mysqlduamp?mysqldump

?#?ln?-s?/usr/local/webserver/mysql/bin/mysqladmin?mysqladmin

?#?mysqladmin?-u?root?-p?password?'123456'

?#?mysql?-u?root?-p

?#?flush?privileges;

vim?/etc/my.cnf??//Mysql?优化,在[mysqld]配置参数下面添加下面几行(大概37行下面)

innodb_file_per_table

log-bin-trust-function-creators=1

skip-name-resolv

innodb_flush_log_at_trx_commit=1

sync-binlog=1

lower_case_table_names=1

max_connections?=?1500?(默认100)

修改配置文件里下面的参数,去掉前面的#

innodb_buffer_pool_size?=?2048M?(默认16M,可以为系统内存50%~70%)

innodb_additional_mem_pool_size?=?256M?(默认2M)

innodb_log_file_size?=?512M????(默认5M,innodb_buffer_pool_size的四分之一)

max_allowed_packet?=?500M

下面安装几个所需要的源码包

########libiconv?加强系统对支持字符编码转换的功能########

cd?/usr/local/src/websoft

tar?xvf?libiconv-1.13.1.tar.gz

cd?libiconv

./configure?--prefix=/usr/local/webserver

make

make?install

####mcrypt是加密算法库,PHP扩展mcrypt功能对此库有依耐关系,要使用mcrypt必须先安装此库######

tar?zxvf?libmcrypt-2.5.8.tar.gz

cd?libmcrypt-2.5.8

?./configure

make

make?install

/sbin/ldconfig

######加密算法库#########

tar?zxvf?mcrypt-2.6.8.tar.gz

cd?mcrypt-2.6.8/

/sbin/ldconfig

?./configure

make

make?install

###mhash是哈希函数,用来计算消息的校验码之类的###

tar?zxvf?mhash-0.9.9.9.tar.gz

cd?mhash-0.9.9.9

?./configure

make

make?install

ln?-s?/usr/local/mysql/lib/libmysqlclient.so.18?/usr/lib?//创建一个mysqlclient库的软连接,不创建在make?的时候会提示找不到这个文件

5、安装PHP

php在编译安装时,nginx要想能够调用php提供动态php格式的网页,必须用FastCGI来实现,但FastCGI只是一个框架,实现FastCGI框架的有PHP-FPM,但对于5.2.x版本的php来说?默认是不支持PHP-FPM的,需要打上php-fpm的补丁,对于5.3.2之前版本的也是需要打补丁的,而且打补丁的过程比较麻烦。好在5.3.3版本的PHP-FPM被直接做进了源代码包中,在编译安装时只需启用PHP-FPM功能即可

加上?--enable-fpm?启动fpm

cd?/usr/local/src/websoft

tar?xvf?php-5.3.6.tar.gz

cd?php-5.3.6

./configure?--prefix=/usr/local/webserver/php?\

--with-config-file-path=/usr/local/webserver/php/etc?\

--with-mysql=/usr/local/webserver/mysql??\

--with-mysqli=/usr/local/webserver/mysql/bin/mysql_config?\

--with-iconv-dir=/usr/local/webserver?--with-freetype-dir?\

--with-jpeg-dir?--with-png-dir?--with-zlib?\

--with-libxml-dir=/usr?--enable-xml?--disable-rpath?\

--enable-safe-mode?--enable-bcmath?\

--enable-shmop?--enable-sysvsem?\

--enable-inline-optimization?--with-curl?\

--with-curlwrappers?\

--enable-mbregex??--enable-fpm?\

--enable-mbstring?--with-mcrypt?--with-gd?\

--enable-gd-native-ttf?--with-openssl?--with-mhash?\

--enable-pcntl?--enable-sockets?--with-ldap?--with-ldap-sasl?\

--with-xmlrpc?--enable-zip?--enable-soap?\

--without-pear??--enable-fpm

make?ZEND_EXTRA_LIBS='-liconv'??#因为-liconv的目录不是在/usr/local下所以安装时需要手动指定

make?install??

cp?/usr/local/websoft/php-5.3.6/php.ini-production?

/usr/local/webserver/php/etc/php.ini??//拷贝php配置文件

6、eaccelerator加速器(这个不是必须的,可以不安装)

eaccelerator是一个自由开放源码PHP加速器,优化和动态内容缓存,提高了性能php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。?它还有对脚本起优化作用,以加快其执行效率。使您的PHP程序代码执效率能提高1-10倍;

tar?jxvf?eaccelerator-0.9.6.1.tar.bz2

cd?eaccelerator-0.9.6.1/

/usr/local/webserver/php/bin/phpize

?./configure?

--enable-eaccelerator=shared?--with-php-config=/usr/local/webserver/php/bin/php-config

make

make?install

修改php.ini?配置文件

vim?/usrl/local/webserver/php/etc/php.ini?//修改extension_dir

extension_dir=?/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/"

配置eAccelerator加速PHP:

创建缓存存放目录

mkdir?-p?/usr/local/webserver/eaccelerator_cache

chmod?777?/usr/local/eaccelerator_cache

建立存放日志的目录

mkdir?-p?/usr/local/webserver/php/logs

vi?/usr/local/webserver/php/etc/php.ini

按shift+g键跳到配置文件的最末尾,加上以下配置信息:

[eaccelerator]

??zend_extension="/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"

?eaccelerator.shm_size="64"

?eaccelerator.cache_dir="/usr/local/webserver/eaccelerator_cache"

?eaccelerator.enable="1"

?eaccelerator.optimizer="1"

?eaccelerator.check_mtime="1"

?eaccelerator.debug="0"

?eaccelerator.filter=""

?eaccelerator.shm_max="0"

?eaccelerator.shm_ttl="3600"

?eaccelerator.shm_prune_period="3600"

?eaccelerator.shm_only="0"

?eaccelerator.compress="1"

?eaccelerator.compress_level="9"

查看安装是否成功:php?-v

PHP?5.3.6?(cli)?(built:?Jun??8?2011?23:10:20)?

Copyright?(c)?1997-2011?The?PHP?Group

Zend?Engine?v2.3.0,?Copyright?(c)?1998-2011?Zend?Technologies

with?eAccelerator?v0.9.6.1,?Copyright?(c)?2004-2010?eAccelerator,?by?eAccelerator

全部安装工作准备已经完成,剩下进行一些配置.

vim?/usr/local/php/etc/php-fpm.conf???##首先修改下面来配置修改

该配置文件只用修改以下四点只需要把蓝色部分前面的注释去掉

;?Note:?Used?when?pm?is?set?to?either?'static'?or?'dynamic'?

?;?Note:?This?value?is?mandatory.

pm.max_children?=?50

;?The?number?of?child?processes?created?on?startup.

?;?Note:?Used?only?when?pm?is?set?to?'dynamic'

?;?Default?Value:?min_spare_servers?+?(max_spare_servers?-?min_spare_servers)?/?2

pm.start_servers?=?10

;?The?desired?minimum?number?of?idle?server?processes.?

?;?Note:?Used?only?when?pm?is?set?to?'dynamic'

?;?Note:?Mandatory?when?pm?is?set?to?'dynamic'

pm.min_spare_servers?=?5

;?The?desired?maximum?number?of?idle?server?processes.

?;?Note:?Used?only?when?pm?is?set?to?'dynamic'

?;?Note:?Mandatory?when?pm?is?set?to?'dynamic'

pm.max_spare_servers?=?35

修改完成,试着启动

#/usr/local/webserver/php/sbin/php-fpm?&???

启动后用netstat?-tnlp???//查看如果有如图所示端口?如果有表示正常启动

如需要开机自动启动?则可以添加到/etc/rc.d/rc.local中

vim?/etc/rc.d/rc.local

在空白行添加???/usr/local/webserver/php/sbin/php-fpm?&??

?

vim?/etc/nginx/nginx.conf??//下面就是最后修改nginx.conf配置文件

user?nginx???????????????????//修改ngin守护进程的用户

worker_processes??4;?????????//工作进程数,一般与?CPU?核数等同,但实际的可以多一些

error_log?logs/error.log;???????//错误日志位置

events?{

????worker_connections??2048;#每个工作进程允许最大的同时连接数,可以稍微大一些,1024的倍数

}

gzip??on;

server?{

????????listen???????80;

????????server_name??192.168.175.208;?? //服务器地址

找到

????????location?~?\.php$?{

?????????????root???????????html;

?????????????fastcgi_pass???127.0.0.1:9000;

?????????????fastcgi_index??index.php;

?????????????fastcgi_param??SCRIPT_FILENAME??/scripts$fastcgi_script_name;

?????????????include????????fastcgi_params;

?????????}

把前面注释全部去掉?root后面的路径是你网页文件所放置的路径,?该目录如果不存在的话还需要手动创建。

找到

??location?/?{

?????????????root???/html;

?????????????index??index.php?index.html?index.htm;

?????????}

修改为如上所示?主要是添加index??后面的index.php

修改完成后保存退出,重新启动nginx服务

service?nginxd?restart?

vim?/usr/local/webserver/nginx/html/index.php??//编辑测试文件在其中添加

?phpinfo();

??>

保存退出

之后用web浏览器访问?如果出现php信息页面?表示服务成功,

下面是测试msql?的连接?

把刚才/usr/local/webserver/nginx/html/index.php中的内容修改成

?$link=mysql_connect("localhost","root","123456");

?if(!$link)?echo?"FAILD!";

?else?echo?"OK!";

??>

然后刷新web页面,如果出现OK!字样?测表示正常连接

优化Linux内核参数

#vi?/etc/sysctl.conf?在/etc/sysctl.conf末尾增加以下内容(可根据服务器实际情况进行调整),在文件最后添加下面的内容

?net.ipv4.tcp_max_syn_backlog?=?65536 ? ? ??

?net.core.netdev_max_backlog?=??32768

?net.core.somaxconn?=?32768

?

?net.core.wmem_default?=?8388608

?net.core.rmem_default?=?8388608

?net.core.rmem_max?=?16777216

?net.core.wmem_max?=?16777216

?

?net.ipv4.tcp_timestamps?=?0

?net.ipv4.tcp_synack_retries?=?2

?net.ipv4.tcp_syn_retries?=?2

?

?net.ipv4.tcp_tw_recycle?=?1

?net.ipv4.tcp_tw_reuse?=?1

?

?net.ipv4.tcp_mem?=?94500000?915000000?927000000

?net.ipv4.tcp_max_orphans?=?3276800

?net.ipv4.ip_local_port_range?=?1024??65535

#net.ipv4.ip_conntrack_max?=?10000

保存退出

/sbin/sysctl?-p

##############Linux内核优化参数说明##########################

?net.ipv4.tcp_max_syn_backlog?=?65536????

#记录的那些尚未收到客户端确认信息的连接请求的最大值

?net.core.netdev_max_backlog?=??32768

#每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

?net.core.somaxconn?=?32768

#listen()的默认参数,挂起请求的最大数量.默认是128.对繁忙的服务器,增加该值有助于网络性能.

?net.core.wmem_default?=?8388608

#该参数指定了发送套接字缓冲区大小的缺省值(以字节为单位

?net.core.rmem_default?=?8388608

该参数指定了接收套接字缓冲区大小的缺省值(以字节为单位)?

?net.core.rmem_max?=?16777216

#该参数指定了接收套接字缓冲区大小的最大值(以字节为单位)?

?net.core.wmem_max?=?16777216

#该参数指定了发送套接字缓冲区大小的最大值(以字节为单位)?

?net.ipv4.tcp_timestamps?=?0

#时间戳可以避免序列号的卷绕。一个1Gbps的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。

?net.ipv4.tcp_synack_retries?=?2

#为了打开对端的连接,内核需要发送一个SYN并附带一个回应前面一个SYN的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK包的数量。

?net.ipv4.tcp_syn_retries?=?2

#在内核放弃建立连接之前发送SYN包的数量。

?net.ipv4.tcp_tw_recycle?=?1

#启用timewait快速回收。

?net.ipv4.tcp_tw_reuse?=?1

#开启重用。允许将TIME-WAIT?sockets重新用于新的TCP连接。

?net.ipv4.tcp_mem?=?94500000?915000000?927000000

#?同样有3个值,意思是:?

net.ipv4.tcp_mem[0]:低于此值,TCP没有内存压力.?
net.ipv4.tcp_mem[1]:在此值下,进入内存压力阶段.?
net.ipv4.tcp_mem[2]:高于此值,TCP拒绝分配socket.?
上述内存单位是页,而不是字节

net.ipv4.tcp_max_orphans?=?3276800??

#系统所能处理不属于任何进程的TCP?sockets最大数量。假如超过这个数量﹐那么不属于任何进程的连接会被立即reset,并同时显示警告信息。之所以要设定这个限制﹐纯粹为了抵御那些简单的DoS攻击﹐千万不要依赖这个或是人为的降低这个限制?

?net.ipv4.ip_local_port_range?=?1024??65535

#允许系统打开的端口范围。

? ? #net.ipv4.ip_conntrack_max?=?10000

#设置系统对最大跟踪的TCP连接数的限制(CentOS?5.6无此参数)?

#####################################################################

编写每天定时切割Nginx日志的脚本使用系统的logrotate?工具来回滚日志:

logrotate?程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过?cron?程序来执行。

logrotate?程序还可以用于压缩日志文件,以及发送日志到指定的E-mai

#vim?/etc/logrotate/nginx????//在/etc/logrotate.d/下建立一脚本文件nginx,内容为:

/usr/local/webserver/nginx/logs/*log?{

?missingok

??rotate?10

??daily

?notifempty

?sharedscripts

?postrotate

?????/bin/kill?-HUP?`cat?/var/run/nginx/nginx.pid 2>/dev/null`?2>?/dev/null?||?true

?endscript

}

保存退出

生成日志的格式为:access_log.1?access_log.2?error_log.3?......

????????????????????????????error_log.1?error_log.2?error_log.3?........

用Webbench进行简单的压力测试

?  Webbench是有名的网站压力测试工具。Webbench支持多平台,FreeBSD、Linux、Windows都可以使用。Webbench最多可以模拟3万个并发连接去测试网站的负载能力。

cd?/usr/local/src/websoft

tar?xvf?webbench-1.5.tar.gz

cd?webbench-1.5

make?&&?make?install

Linux压力测试工具webbench使用:?

引用?webbench?-c?500?-t?30?http://127.0.0.1/index.php

webbench?-c?500?-t?30参数说明:-c表示并发数,-t表示时间(秒)

本文出自 “fighter” 博客,请务必保留此出处http://fighter.blog.51cto.com/1318618/588453

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    表情:
    验证码:点击我更换图片 匿名?

    今日头条

    更多>>

    推荐图文

    • CentOS 5.6(X64)下编译安装LNMP平台(Nginx1.0.4+PHP5.3.6+Mysql5
    • 巧用cfengine管理linux服务器(上)
    • 完美的服务器--Ubuntu 9.04 ISPconfig设置 (上)
    • 邮件中继在Linux服务器上的应用
    • RHEL5下Samba服务器的搭建配置
    • linux服务器使用Nginx提升网站访问速度
    • Linux空间用Gzip对网页内容进行压缩详解
    • RHEL 5.5+DRBD+heartbeat+Oracle10R2双机安装实例
    • 使用GFS和DRBD在CentOS 5.5上进行Samba CTDB集群部署
    Alexa - 客户服务 - 联系方法 - 招聘信息 - 友情链接 - 网站地图 - TAG标签 - RSS订阅
    Copyright ? 2010-2012 JZQ8.COM. 新2备用网址hg622.com|首页吧|新2备用网址hg622.com|首页去吧 版权所有
    冀ICP备09002514号
    冀ICP备09002514号 网络报警 企业法人营业执照 中国互联网协会 支付宝付款 网银在线付款