数据库

 首页 > 数据库 > mariadb > Nginx编译安装与负载压力测试

Nginx编译安装与负载压力测试

分享到:
【字体:
导读:
         摘要:安装编译器及相关的工具[root@localhostsofts]#yuminstallgccgcc-c++autoconfautomake-y模块依赖性:nginx的一些模块需要第三方库的支持,gzip需要libzip库,rewrite需要pcre库,ssl需要libssl库等,可以使用yum安装来解决这些依赖库。[r...

Nginx编译安装与负载压力测试

安装编译器及相关的工具

[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

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.

Nginx编译安装与负载压力测试
分享到:
MariaDB galera cluster集群工具
MariaDB galera cluster集群工具 MariaDB Galera Cluster 是一个用于同步 MariaDB 数据库的多 master 集群的工具。在数据方面完全兼容 MariaDB 和 MySQL。 特性: 同步复制 Synchronous replication Active-active multi-master 拓扑逻辑 可对集群中任一节点进行数据读写 自动成员控制,故障节点自动从集群...
MySQL数据库主流分支
MySQL数据库主流分支         在MySQL经历了2008年Sun的收购和2009年Oracle收购Sun的过程中,基本处于停滞发展的情况,在可以预见的未来,MySQL是肯定会被Oracle搁置并且逐步雪藏消灭掉的。MySQL随着相应的各主创和内部开发人员的离去,缔造了各个不同的引擎和分支,让MySQL有希望继续发扬光大起来。 本文大致讲解...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……