NGINX安装与简单的压力测试

37 篇文章 0 订阅
17 篇文章 0 订阅

安装编译器及相关的工具

[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.










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值