NGINX安装与简单的压力测试

浏览:
字体:
发布时间:2013-12-12 14:50:51
来源:

安装编译器及相关的工具

[root@localhost softs]# yum install gcc gcc-c++ autoconf automake -y

模块依赖性:nginx的一些模块需要第三方库的支持,gzip需要libzip库,rewrite需要pcre库,ssl需要libssl库等,可以使用yum安装来解决这些依赖库。

[root@localhost ~]# yum install zlib zlib-devel openssl openssl-devel pcre pcre-devel -y

===========>安装过程所需的一些开发包和支持包

安装pcre-8.33.tar.gz ======> perl语言兼容正则表达式

[root@localhost pcre-8.33]# ./configure --enable-utf8 --enable-rebuild-chartables --enable-newline-is-any --enable-pcregrep-libz && make && make install

安装nginx

[root@localhost nginx-1.5.6]# yum install gd gd-devel libxml2 libxml2-devel

===========>安装gd,libxml库与开发包

[root@localhost nginx-1.5.6]# ./configure --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid --user=nginx --group=nginx --with-rtsig_module --with-select_module --with-poll_module --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_sub_module --with-http_dav_module --with-http_gzip_static_module --with-http_flv_module --with-http_perl_module --with-perl=/usr/bin/perl --http-log-path=/var/log/nginx/access.log --with-pcre --with-pcre=/usr/src/lnmp/pcre-8.33/ --with-http_stub_status_module

[root@localhost nginx-1.5.6]# make

[root@localhost nginx-1.5.6]# make install

修改nginx的配置文件

[root@localhost nginx-1.5.6]# vi /usr/local/nginx/conf/nginx.conf

user nginx; ####指定nginx的默认用户
worker_processes 1;####启动进程,通常设置成和cpu的数量相等


error_log /var/log/nginx/error.log; ####nginx的错误日志存放目录
#error_log logs/error.log notice;
error_log /var/log/nginx/error.log info; ####nginx的错误日志级别设置


pid /var/run/nginx/nginx.pid;####nginx运行进程pid


events {
worker_connections 1024; #####单个后台worker process进程的最大并发链接数
}


http {
include mime.types; #######设定mime类型,类型由mime.type文件定义
default_type application/octet-stream;
###MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开

log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
=========>指定日志的格式

access_log /var/log/nginx/access.log main; ###日志目录


sendfile on; ####sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.

gzip on; #####开启zip压缩


server {
listen 80;
server_name localhost;
root /www; ####DocumentRoot
index index.html index.htm index.php; ####支持的索引类型
charset gb2312;####支持的语言



location / { try_files $uri $uri/ /index.php;

}

####按顺序检查文件是否存在,返回第一个找到的文件。结尾的斜线表示为文件夹 -$uri/。如果所有的文件都找不到,会进行一个内部重定向到最后一个参数


location ~ /.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
include fastcgi.conf;
}

}

[root@localhost conf]# mkdir /www ####创建相应的目录

[root@localhost conf]# chown nginx.nginx /www/ ####改属组和属主

[root@localhost ~]# mv /usr/local/nginx/html/* /www ###将nginx默认的index.html移动到自己指定的目录也可自己建

[root@localhost html]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf #####启动nginx

浏览器访问127.0.0.1

http://127.0.0.1/index.html

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer tonginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

php安装

[root@localhost php-5.5.5]# ./configure --prefix=/usr/local/php --enable-fastcgi --enable-fpm --with-mcrypt --with-zlib --enable-mbstring --disable-pdo --with-curl --disable-debug --enable-pic --disable-rpath --enable-inline-optimization --with-bz2 --with-xml --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable mbregex --with-mhash --enable-xslt --enable-memcache --enable-zip --with-pcre-regex --with-mysql --enable-gd --enable-opcache=no

make

make install

mariadb-5.5.33a.tar.gz的安装

创建mariadb用户组

[root@localhost mariadb-5.5.33a]# groupadd mariadb
[root@localhost mariadb-5.5.33a]# useradd -s /sbin/nologin -g mariadb mariadb

安装cmake

解压cmake-2.8.11.2.tar.gz后依次执行 ./bootstrap; make; make install

下载安装mariadb

[root@localhost soft]# wget http://mirrors.scie.in/mariadb/mariadb-5.5.33a/kvm-tarbake-jaunty-x86/mariadb-5.5.33a.tar.gz

[root@localhost soft]# ls
mariadb-5.5.33a.tar.gz

[root@localhost soft]# tar xf mariadb-5.5.33a.tar.gz -C /usr/src/lnmp

[root@localhost soft]# yum install bison gcc* ncurses* -y

[root@localhost mariadb-5.5.33a]# mkdir /mariadb /var/run/maria

[root@localhost mariadb-5.5.33a]# chown -R mariadb.mariadb /mariadb /var/run/maria

[root@localhost mariadb-5.5.33a]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/maria -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_DEBUG=0 -DBUILD_CONFIG=mysql_release -DFEATURE_SET=community -DWITH_EMBEDDED_SERVER=OFF -DMYSQL_UNIX_ADDR=/var/run/maria/mysql.sock -DMYSQL_DATADIR=/mariadb

[root@localhost mariadb-5.5.33a]# make && make install

[root@localhost log]# /usr/local/maria/scripts/mysql_install_db --user=mariadb --basedir=/usr/local/maria --datadir=/mariadb
Installing MariaDB/MySQL system tables in '/mariadb' ...
OK
Filling help tables...
OK
初始化数据库成功

yum install mysql -y ##安装mysql客户端

cp /usr/local/maria/scripts/support-files/mysql.server /etc/init.d/maria

service maria start

php安装

[root@localhost softs]# wget http://ar2.php.net/distributions/php-5.3.27.tar.bz2

[root@localhost softs]# tar xf php-5.3.27.tar.bz2 -C /usr/src/lnmp

[root@localhost softs]# cd /usr/src/lnmp

[root@localhost php-5.3.27]# ./configure --disable-ipv6 --with-libxml-dir=/usr --with-openssl=/usr --with-pcre-regex=/usr/local --with-zlib=/usr --with-bz2=/usr --enable-calendar --with-curl=/usr --with-pcre-dir=/usr/local --enable-ftp --with-openssl-dir=/usr --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-zlib-dir=/usr/local --with-xpm-dir=/usr --with-freetype-dir=/usr/local --enable-gd-native-ttf --enable-gd-jis-conv --with-mhash=/usr/local --enable-mbstring --with-mcrypt=/usr/local --with-mysql=/usr/local/maria --with-mysql-sock=/var/run/maria/maria.sock --with-mysqli=/usr/local/maria/bin/mysql_config --with-snmp=/usr --enable-sockets --enable-zip --enable-fpm

[root@localhost softs]# make && make install

[root@localhost conf]# cd /usr/local/php/etc/
[root@localhost etc]# ls
pear.conf php-fpm.conf.default
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf

[root@localhost etc]# vi /usr/local/webserver/php/etc/php-fpm.conf
去掉以下四行的注释,并自己修改值:
pm.max_children = 20
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
启动php

[root@localhost etc]# /usr/local/php/sbin/php-fpm

查看一下nginx.conf的配置,然后启动nginx

user nginx;
worker_processes 1;

error_log /var/log/nginx/error.log;
#error_log logs/error.log notice;
error_log /var/log/nginx/error.log info;

pid /var/run/nginx/nginx.pid;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;

server {
listen 80;
server_name localhost;
root /www;
index index.html index.htm index.php;
charset gb2312;
access_log /var/log/nginx/access.log main;
location / {
try_files $uri $uri/ /index.php;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ /.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ /.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;

include fastcgi.conf;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ //.ht {
# deny all;
#}
}
[root@localhost etc]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

[root@localhost etc]# lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
nginx 3411 root 6u IPv4 342798 TCP *:http (LISTEN)
nginx 3412 nginx 6u IPv4 342798 TCP *:http (LISTEN)


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

webbench最多可以模拟3万个并发连接去测试网站的负载能力

下载webbench-1.5.tar.bz2

[root@localhost softs]# tar xf webbench-1.5.tar.bz2

[root@localhost softs]# cd webbench-1.5/

[root@localhost softs]# make && make install

压力测试

[root@localhost www]# webbench -c 3000 -t 10 http://127.0.0.1/index.html
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://127.0.0.1/index.html
3000 clients, running 10 sec.
Speed=1726008 pages/min, 24739128 bytes/sec.
Requests: 287665 susceed, 3 failed.

------------------------------------------------------------------------------

[root@localhost www]# webbench -c 3000 -t 10 http://127.0.0.1/1.jpg
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://127.0.0.1/1.jpg
3000 clients, running 10 sec.

Speed=1670262 pages/min, -212381851 bytes/sec.
Requests: 278376 susceed, 1 failed.




>更多相关文章
24小时热门资讯
24小时回复排行
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2024 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();