品种实战1,nginx负载均衡实例

实例全部框架:

烂泥:使用nginx利用虚构主机搭建WordPress博客,nginxwordpress

本文由秀依林枫提供友情赞助,头阵于烂泥行天下。

多年来开班筹算攻读nginx web服务器,既然是上学只怕以实用为目标的。大家在那以搭建WordPress博客为例。

搭建WordPress博客,大家供给Mysql数据库、PHP意况和Nginx Web服务器。主要分为以下五个步骤:

1、Mysql数据库安装及布置

2、PHP、PHP-FPM及与PHP相关组件的设置及铺排

3、Nginx Web服务器搭建与配置

4、wordpress安装

注意:本次试验,除了nginx使用源码安装外,别的的软件全体使用rpm包yum格局进行安装。

一、 Mysql数据库安装及布局

1.1 mysql数据库安装

mysql数据库,大家使用yum形式开展设置。如下:

yum -y install mysql mysql-server

图片 1

图片 2

1.2 修改mysql数据库root顾客密码及安插远程访问权限

mysql数据库安装实现后,大家来运维mysql数据库,并修改mysql数据库的连带设置,同一时间还要为wordpress创造ailanni数据库。如下:

/etc/init.d/mysqld start

图片 3

修改mysql数据库root客商的密码,mysql数据库安装后root客商私下认可密码为空。使用如下命令:

mysql -u root –p或者mysql -uroot –p

use mysql;

update user set password=password('123456') where user='root';

flush privileges;

/etc/init.d/mysqld restart

图片 4

图片 5

私下认可情形下,mysql数据库只允许本机访问mysql数据库。然而为了对mysql数据库管理的方便人民群众,大家必要开启mysql数据库远程访谈的权位。使用如下命令:

mysql -u root –p或者mysql -uroot –p

use mysql;

update user set host='%' where user='root';

flush privileges;

/etc/init.d/mysqld restart

图片 6

图片 7

以上配置达成后,你会发掘mysql连接一点也不快。大家只需求修改mysql数据库的布署文件就可以。

开垦/etc/my.cnf文件,在mysqld中,加入skip-name-resolve,然后重启mysql数据库,就能够。如下:

vi /etc/my.cnf

/etc/init.d/mysqld restart

图片 8

1.3 开创wordpress所需数据库

以上操作结束后,我们再连接mysql数据库,在这里大家应用的是Navicat Premium数据库顾客端。

经过Navicat Premium创立Wordpress博客所急需的数据库,有关使用Navicat Premium创立mysql数据库,能够参见《烂泥:Navicat Premium使用mysql数据库》,数据库创设完结后如下:

图片 9

本来我们也足以选择,phpmyadmin创造wordpress说需求的数据库。

至于在nginx上安装与行使phpmyadmin,作者会在下一篇小说中牵线。

二、PHP、PHP-FPM及与PHP相关组件的安装及布署

mysql数据库安装收尾后,我们前些天来布局php情状。

2.1 安装PHP及其相关组件

第一安装php及连锁的零部件,使用如下命令:

yum -y install php*

图片 10

图片 11

在php的有关组件中,大家自然要小心php-mysql与php-fpm那五个零部件。当中php-mysql之php连接mysql使用,不然在装置WordPress时,会提示:您的PHP就像并未有设置运维WordPress所要求的MySQL扩大。那个装置完成后,要重启mysql数据库,不然wordpress无法连接mysql数据库。

而php-fpm是php合营naginx使用的,nginx本身不匡助php,通过php-fpm合营nginx才深入分析php语言。

这四个零部件其实是足以独自分开实行安装的,如下:

yum –y install php-mysql

yum –y install php-fpm

以上安装收尾后,大家来查看php的本子。如下:

php -v

图片 12

2.2 配置php-fpm

php相关组件安装完成后,大家就要来布局php-fpm。

翻看php-fpm的相关设置文书档案,如下:

rpm -ql php-fpm

图片 13

透过上海教室,大家得以阅览php-fpm的连锁安插文件。首要安插文件为/etc/php-fpm.conf,现在查阅该配置文件,如下:

more /etc/php-fpm.conf

图片 14

您会开掘该配置文件根本就从没有过定义啊,php-fpm所急需监听的端口以致监听的地点。

难道说大家说深入分析的窘迫?

呵呵,其实大家解析的某个都不曾错。注意上海体育场合中,我们标识出来的一部分。

include=/etc/php-fpm.d/*.conf

那条语句相当的重大,它富含了着实php-fpm说配置的基本点部分。该重大配置文件就是在php-fpm安装图中标志出来的www.conf文件。

/etc/php-fpm.d/www.conf

现行反革命大家来查阅该文件,如下:

more /etc/php-fpm.d/www.conf

图片 15

那张图,标志出来的有的,呈现的是php-fpm要监听的地方和端口。

图片 16

那张图,彰显的是运维php-fpm进程时,所使用的顾客及客商组。在那,大家应用暗中认可客商及客商组apache。

总结,只要大家设置好php-fpm不开展任何配置,使用暗中认可的安排就能够。

道理当然是那样的尽管您想进一步优化php-fpm配置来讲,能够通过php-fpm安装时说给出的布署模版来布局,该配置模版位于:

more /usr/share/doc/php-fpm-5.3.3/php-fpm.conf.default

图片 17

上述配置完结后,大家来运维php-fpm,并查看是还是不是健康监听端口以致地点。如下:

/etc/init.d/php-fpm start

chkconfig php-fpm on

netstat -tunlp |grep 9000

ps aux |grep php-fpm

图片 18

透过上海教室,大家可以看出眼前php-fpm已经何足为奇运行,监听的地方及端口为:127.0.0.1:八千,何况php-fpm是以apache客户运营的。而主进度是以root客商在运作。

经过php-fpm的起步格局,大家能够看见php-fpm是以劳动的不二秘诀在运作。那么大家也足以由此服务器的格局,重启和停业php-fpm。如下:

/etc/init.d/php-fpm restart

/etc/init.d/php-fpm stop

图片 19

三、Nginx Web服务器搭建与安插

3.1 安装Nginx

把下载好的nginx上传播服务器上,使用如下命令:

scp tengine-2.0.3.tar.gz [email protected]:/tmp

ifconfig eth0|grep "inet addr"|awk '{print $2}'|cut -d: -f2

图片 20

解压nginx,并开展编写翻译、安装如下:

tar -xf /tmp/tengine-2.0.3.tar.gz -C ./

./configure

图片 21

make && make install

图片 22

3.2 启动nginx

nginx安装完成后,大家来开头起步nginx。nginx能够经过三种办法开展运维。

一种是之类:

/usr/local/nginx/sbin/nginx

除此以外一种如下:

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

其实首先种方法,暗中同意情形下是要加载/usr/local/nginx/conf/nginx.conf配置文件的。

图片 23

图片 24

通过上海教室,大家能够很分明的看来。nginx已经家常便饭运转,何况也得以平常访谈。

方今大家看看nginx运维的顾客,如下:

ps -aux|grep nginx

图片 25

因此上海体育地方,我们可以看出前段时间nginx运维在nobody顾客下。

3.3 配置Nginx支持php

nginx安装达成后,我们就要求来安顿nginx使其帮忙php,而且大家也要配置nginx,让wordpress以虚构主机的款式张开安装。

大家先来布局有关php的选项。

在nginx的安排文件把关于fastcgi有关的注释项,全体去掉。如下:

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

location ~ .php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

图片 26

上述配置实现后,大家来给nginx配置主页。就是增加index.php文件,如下:

location / {

root html;

index index.php index.html index.htm;

}

图片 27

现行反革命咱们来测量试验下,nginx有关php的安插是还是不是科学。编辑index.php文件,参与<?php phpinfo();?>,如下:

vi ./html/index.php

图片 28

于今来测量检验下nginx配置是或不是正确,然后优雅的重启nginx,使用如下命令:

/usr/local/nginx/sbin/nginx –t

/usr/local/nginx/sbin/nginx -s reload

图片 29

图片 30

经过上海体育场面,大家可以看来眼下nginx已经足以符合规律的支撑php。

3.4 安插Nginx帮助虚构主机

nginx有关php的布局完成后,大家今后来布署nginx设想主机。

实际nginx的安排相当粗略,整个配置文件。独有四个http标签,而设想主机的铺排正是叁个二个server标签。

唯独server标签必得在含蓄在http标签中,这样说的目标是server标签既可以够在http所在的布局文件,也得以以单身的文件存在,可是须求在http标签中使用include举办李包裹括。

上边是自个儿布置的三个设想主机a.ilanni.com,如下:

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

server {

listen 80;

server_name a.ilanni.com;

root /ilanni/a.ilanni.com/;

index index.php;

location ~ .php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

}

图片 31

小心,我以往是把a.ilanni.com那些虚拟主机的根目录贮存在/ilanni/a.ilanni.com/这一个目录下,而且该目录的顾客及客户组为root,如下:

图片 32

为了和后面nginx的暗中同意主页实行区分,小编未来把设想主机a.ilanni.com的主页,使用的是三个php探针。

图片 33

如上虚构主机配置完成后,大家来重启下nginx,如下:

/usr/local/nginx/sbin/nginx –t

/usr/local/nginx/sbin/nginx -s reload

图片 34

经过上海教室,大家得以很明显的见到。如今虚构主机a.ilanni.com,已经得以健康访谈,能够展示的着实小编关系的php探针。

四、wordpress安装

上述大家把wordpress安装是,所要求的mysql数据库、nginx web服务器都已搭建达成。

至今我们把wordpress安装包,上传到服务器上进行解压,如下:

scp wordpress-4.0-zh_CN.tar.gz [email protected]:/ilanni

tar -xf wordpress-4.0-zh_CN.tar.gz

图片 35

把解压后的文本复制到设想主机a.ilanni.com根目录下,如下:

cp -rv ./wordpress a.ilanni.com/

图片 36

开班设置wordpress,在浏览器中拜谒a.ilanni.com,如下:

图片 37

填写mysql数据库的相关信息。如下:

图片 38

复制该音讯到文件wp-config.php中,若是该文件不设有,则在a.ilanni.com根目录下,创设wp-config.php文件,如下:

图片 39

vi wp-config.php

图片 40

安装博客的连带孟买型,如下:

图片 41

提示已经设置成功,如下:

图片 42

会见设想机a.ilanni.com主页,如下:

图片 43

到此有关在nginx下安装wordpress博客,已经形成。

品类实战1—LNMP的搭建、nginx反向代理和缓存等的实现,lnmpnginx

 

图片 44

图片 45

用wordpress在二级目录下建博客,主机是nginx的设想主机怎进行伪静态设置?空间商说必得用独立主机

能够放在二级目录下,把wordpress上传来二级目录,访谈安装就能够。  

实战一:搭建lnmp及类One plus等商业网址的达成

条件:关闭防火墙,selinux

 

 

怎在设想主机上搭建三个网站

搭建贰个wordpress网站,供给空间支撑php程序,有赠送mysql数据库才行,三个100-200M的空中,数据库大致50M就相当多了。有个 E世纪主机 里标的三个基础性空间和这么些布局大约,一百多块钱一年,免费的个体认为有一点点牢固、也没怎么本领扶助,须要支援的时候不佳找人,依然花点钱,也十分的少,找人的时候轻松。你购买好了,你能够交换网站上的本领帮衬帮您安装贰个,你也得以和煦下载一个wordpress 上去,然后访谈你的域名遵照提示操作即可。  

本文由秀依林枫提供友情赞助,先发于烂泥行天下。 前段时间开首打算攻读nginx web服...

1、安装包,开启服务

yum -y install nginx mariadb-server php-fpm php-mysql

systemctl start nginx

systemctl start mariadb

systemctl start php-fpm

 

 使用VMware搭建 5台Centos7设想机(包蕴客商端),系统版本:CentOS Linux release 7.2.1511。实例所设置的nginx版本:1.12.2,mariadb-server版本:5.5.56,php-fpm版本:5.4.16,PHPMyAdmin版本:4.0.10.20。此实例全体虚构机均已关门防火墙并安装selinux为Permissive(systemctl stop firewalld.service,setenforce 0)。

2、修改nginx的配备文件

(1)cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf 有个模板例子覆盖了安顿文件

vim /etc/nginx/nginx.conf 修改上面几类

① user nobody; 使用客户
error_log /var/log/nginx/error.log info; 错误日志

② events {
① user nobody; 使用客户
  error_log /var/log/nginx/error.log info; 错误日志

② events {
  worker_connections 65535;
}

③ tcp_nopush on; tcp优化
tcp_nodelay on;
gzip on;

④ server {
listen 80;
server_name xiaomi.along.com; 依照自个儿顺便写
root /data/web; 主站点的目录根
  location / {
    index index.php index.html index.htm;
  }

⑤ location ~ .php$ { 开启.php,配置文件有例子,只需去掉注释,修改一行就能够
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
}

 

 

(2)修改完,可以nginx -t 查看

systemctl restart nginx 重启服务,开采有warn

 

(3)ulimit -n 查看linux系统里展开文件陈述符的最大值,平常缺省值是1024,对一台繁忙的服务器来讲,这几个值偏小,所以有供给重新安装linux系统里展开文件陈说符的最大值

ulimit -n 65535 修改内核参数

 

搭建web server:

1、安装php-fpm和mariadb-server并创制web能源寄存目录:

[root@webserver Desktop]# yum install -y php php-fpm php-mbstring mariadb-server php-mysql
[root@webserver Desktop]# mkdir /data/html

2、配置php-fpm:

#配置php-fpm
[root@webserver Desktop]# vim /etc/php-fpm.d/www.conf
    listen = 0.0.0.0:9000
    listen.allowed_clients = 10.10.0.11,10.10.0.12
    pm.status_path = /status
    ping.path = /ping
    ping.response = pong
    php_value[session.save_handler] = files
    php_value[session.save_path] = /var/lib/php/session
#设置会话session文件属主属组
[root@webserver Desktop]# chown apache:apache /var/lib/php/session
[root@webserver Desktop]# ll -d /var/lib/php/session
    drwxrwx---. 2 apache apache 4096 Aug 20 15:50 /var/lib/php/session/
[root@webserver Desktop]# systemctl start php-fpm.service
[root@webserver Desktop]# ss -tan
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128          *:9000                     *:*                  
LISTEN     0      5      192.168.122.1:53                       *:*                  
LISTEN     0      128          *:22                       *:*                  
LISTEN     0      128    127.0.0.1:631                      *:*                  
LISTEN     0      100    127.0.0.1:25                       *:*                  
LISTEN     0      128         :::22                      :::*                  
LISTEN     0      128        ::1:631                     :::*                  
LISTEN     0      100        ::1:25                      :::*

3、创制index.php页面并并下载PHPMyAdmin和WordPress:

[root@webserver Desktop]# cd /data/html
[root@webserver html]# vim index.php
    <h1> 10.10.0.13 server</h1>
    <?php
        phpinfo();
    ?>
[root@webserver html]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
[root@webserver html]# wget https://files.phpmyadmin.net/phpMyAdmin/4.0.10.20/phpMyAdmin-4.0.10.20-all-languages.tar.gz
[root@webserver html]# tar xf wordpress-4.9.4-zh_CN.tar.gz
[root@webserver html]# tar xf phpMyAdmin-4.0.10.20-all-languages.tar.gz
[root@webserver html]# ln -sv phpMyAdmin-4.0.10.20-all-languages phpmyadmin
#配置wordpress所用数据库
[root@webserver html]# cp /data/html/wordpress/wp-config-sample.php /data/html/wordpress/wp-config.php
[root@webserver html]# vim /data/html/wordpress/wp-config.php
    define('DB_NAME', 'wordpress');
    define('DB_USER', 'wpuser');
    define('DB_PASSWORD', '12345678');
    define('DB_HOST', 'localhost');
    define('DB_CHARSET', 'utf8');

4、配置mariadb:

[root@webserver html]# vim /etc/my.cnf
    [mysqld]
    skip_name_resolve=ON
    innodb_file_per_table=ON
root@webserver html]# systemctl start mariadb.service
#设置mariadb的安全权限
root@webserver html]# mysql_secure_installation
...
#创建wordpress数据库并授权wpuser操作权限,跟wordpress配置文件保持一致
root@webserver html]# mysql -uroot -p
Enter password: 
MariaDB [(none)]> create database wordpress;
MariaDB [(none)]> grant all on wordpress to 'wpuser'@'%' identified by '12345678';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

3、修改php-fpm的配备文件

① vim /etc/php.ini 改两行

date.timezone = Asia/Shanghai 时区

short_open_tag = On 允许短标签

 

vim /etc/php-fpm.d/www.conf 改两行

user = nobody

group = nobody

 

systemctl restart php-fpm

 

搭建nginx1:

1、安装Nginx并成立web能源贮存目录

[root@nginx1 Desktop]# yum install -y nginx
[root@nginx1 Desktop]# mkdir -pv /data/html

2、创造index.html暗许页面并下载PHPMyAdmin和WordPress

[root@nginx1 Desktop]# cd /data/html
[root@nginx1 html]# vim index.html
    <h1>this is 10.10.0.11 nginx</h1>
[root@nginx1 html]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
[root@nginx1 html]# wget https://files.phpmyadmin.net/phpMyAdmin/4.0.10.20/phpMyAdmin-4.0.10.20-all-languages.tar.gz
[root@nginx1 html]# tar xf wordpress-4.9.4-zh_CN.tar.gz
[root@nginx1 html]# tar xf phpMyAdmin-4.0.10.20-all-languages.tar.gz
[root@nginx1 html]# ln -sv phpMyAdmin-4.0.10.20-all-languages phpmyadmin
#配置wordpress所用数据库
[root@nginx1 html]# cp /data/html/wordpress/wp-config-sample.php /data/html/wordpress/wp-config.php
[root@nginx1 html]# vim /data/html/wordpress/wp-config.php
    define('DB_NAME', 'wordpress');
    define('DB_USER', 'wpuser');
    define('DB_PASSWORD', '12345678');
    define('DB_HOST', 'localhost');
    define('DB_CHARSET', 'utf8');

3、配置设想主机并运转nginx:

[root@nginx1 html]# vim /etc/nginx/nginx.conf
#注释nginx默认的主机配置
    ...
    server {
#        listen       80 default_server;
#        listen       [::]:80 default_server;
    ...
[root@nginx1 html]# vim /etc/nginx/conf.d/vhost.conf   #配置虚拟主机,页面动静分离
  server {
    listen 80;
    server_name www.test.org;
    index index.html;
    location / {
         root /data/html;
    }
    location ~* .php$ {
      fastcgi_pass 10.10.0.13:9000;
      fastcgi_index index.php;
      include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME /data/html/$fastcgi_script_name;
    }
    location ~* ^/(status|ping)$ {
      fastcgi_pass 10.10.0.13:9000;
      include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
    }
    }
[root@nginx1 html]# systemctl start nginx.service

4、运转mysql ,创立一会网页须求的库

create database xiaomi;

 

nginx2配置进度同nginx1.

5、把开始的一段时期找好的OPPO网址传进来 rz

Motorola网址的源码财富作者早已上传到网盘了 ,要求的私密作者

mkdir /data/web -p 创设三个索引特意放Samsung的网页配置

unzip -d /data/web/ xiaomi.zip 解压到目录

cd /data/web/

chown -R nobody.nobody * 为了安全,递归把具备文件的所属人和所属组改为权力有限的nobody

 

搭建Nginx SLB:

安装nginx并实行负荷均衡配置:

[root@SLB Desktop]# yum -y install nginx
[root@SLB Desktop]# vim /etc/nginx/nginx
#在http字段进行以下配置
    http {
        ...
        #定义集群
        upstream webservers {
            server 10.10.0.11:80 max_fails=3;
            server 10.10.0.12:80 max_fails=3;
            server 127.0.0.1:80 backup;
        }
        server {
        ...
        location / {
                proxy_pass http://webservers;   #反代给集群服务器
                proxy_set_header host $http_host;   #设置代理请求报文的host字段为$http_host
                proxy_set_header X-Forward-For $remote_addr;       #为代理请求报文添加X-Forward-For字段以传递真实ip地址$remote_addr
            }
            ...
        }
[root@SLB Desktop]# systemctl start nginx.service

6、网页登陆

① 用户:admin

密码:123456

图片 46

② 参数设置:便是连连上团结的数据库

图片 47

也能够在命令行连上和睦的数据库:

vim /data/web/data/config.php

图片 48

③ 把数量写到数据库中,恢复数据

图片 49

 

顾客端实行会见:

1、修改hosts:

[root@client Desktop]# vim /etc/hosts
    ...
    172.16.0.11 www.test.org

2、访问:

图片 50      图片 51

3、没安顿缓存时展开压力测验:

[root@client Desktop]# ab -c 100 -n 100000 http://www.test.org/wordpress
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.test.org (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        nginx/1.12.2
Server Hostname:        www.test.org
Server Port:            80

Document Path:          /wordpress
Document Length:        185 bytes

Concurrency Level:      100
Time taken for tests:   58.734 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Non-2xx responses:      100000
Total transferred:      41700001 bytes
HTML transferred:       18500000 bytes
Requests per second:    1702.59 [#/sec] (mean)
Time per request:       58.734 [ms] (mean)
Time per request:       0.587 [ms] (mean, across all concurrent requests)
Transfer rate:          693.34 [Kbytes/sec] received

Connection Times (ms)
              min  mean[ /-sd] median   max
Connect:        0    2   8.4      0     295
Processing:     2   57 124.9     31    2962
Waiting:        2   56 124.8     31    2962
Total:          7   58 125.3     33    2962

Percentage of the requests served within a certain time (ms)
  50%     33
  66%     51
  75%     66
  80%     77
  90%    111
  95%    157
  98%    273
  99%    375
 100%   2962 (longest request)

7、实验成功,登入查看

图片 52

后台登入,能够和煦无论修改

图片 53

 

8、ab 可以压力测验

ab -c 100 -n 1000  

 

4、在SLB服务器实行缓存配置:

#创建缓存存放目录
[root@SLB Desktop]# mkdir -p /data/nginx/cache
[root@SLB Desktop]# vim /etc/nginx/nginx.conf
#在http字段进行配置
    http {
        ...
        proxy_cache_path /data/nginx/cache levels=1:1 keys_zone=nginxcache:50m max_size=1g;
        ...

        server {
            ...
            proxy_cache nginxcache;
            proxy_cache_key $request_uri;
            proxy_cache_valid 200 301 302 1h;
            proxy_cache_methods GET HEAD;
            proxy_cache_valid any 1m;
            add_header X-cache '$upstream_cache_status from $host';
            proxy_cache_use_stale http_502;
            ...
        }
[root@SLB Desktop]# systemctl restart nginx.service

5、再一次张开压力测量试验:

[root@client Desktop]# ab -c 100 -n 100000 http://www.test.org/wordpress
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.test.org (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        nginx/1.12.2
Server Hostname:        www.test.org
Server Port:            80

Document Path:          /wordpress
Document Length:        185 bytes

Concurrency Level:      100
Time taken for tests:   14.391 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Non-2xx responses:      100000
Total transferred:      41700000 bytes
HTML transferred:       18500000 bytes
Requests per second:    6948.98 [#/sec] (mean)
Time per request:       14.391 [ms] (mean)
Time per request:       0.144 [ms] (mean, across all concurrent requests)
Transfer rate:          2829.81 [Kbytes/sec] received

Connection Times (ms)
              min  mean[ /-sd] median   max
Connect:        0    1   1.9      0      48
Processing:     2   14   3.9     13      58
Waiting:        1   13   3.8     13      58
Total:          8   14   3.9     13      67

Percentage of the requests served within a certain time (ms)
  50%     13
  66%     14
  75%     14
  80%     14
  90%     16
  95%     24
  98%     27
  99%     29
 100%     67 (longest request)

 

实验二:实现ssl 加密

(1)叁个大要服务器设置一个https

1、创立寄存证书的目录

mkdir /etc/nginx/ssl

 

2、自签定证书

cd /etc/pki/tls/certs/

make nginx.crt

图片 54

openssl rsa -in nginx.key -out nginx2.key 因为刚私钥被加密了,为了前边方便,解密

 

3、把证件和私钥cp 到nginx存放证书目录

cp nginx.crt nginx2.key /etc/nginx/ssl/

cd /etc/nginx/ssl/

mv nginx2.key nginx.key 把名字改回来

 

4、修改配置文件,加一段server

server {
   listen 443 ssl;
   server_name www.along.com;
   ssl on;
   ssl_certificate /etc/nginx/ssl/nginx.crt;
   ssl_certificate_key /etc/nginx/ssl/nginx.key;
   ssl_session_cache shared:sslcache:20m;
   ssl_session_timeout 10m;
 }

 

图片 55

 

5、测量试验,网页张开

图片 56

windows 信赖证书

图片 57

 

(2)因为nginx 强盛,能够达成八个设想主机基于区别的FQDN 完成ssl加密,httpd无法兑现

一个物理服务器设置五个https

1、生成3个注明和私钥

make nginx.crt

make nginx2.crt

make nginx3.crt

图片 58

 

2、把证件和私钥cp 到nginx存放证书目录,并肢解私钥的加密

cp nginx{1,2,3}* /etc/nginx/ssl/

openssl rsa -in nginx.key -out nginx.key

openssl rsa -in nginx2.key -out nginx2.key

openssl rsa -in nginx3.key -out nginx3.key

 

3、创造各自对应的拜候网页

mkdir /app/website{1,2,3}

echo website1 > /app/website1/index.html

echo website1 > /app/website2/index.html

echo website1 > /app/website3/index.html

图片 59

 

4、测验访谈,成功

 

实战三:完成身份验证

1、生成密码账户文件

cd /etc/nginx/conf.d

htpasswd -c -m .htpasswd http1

htpasswd -m .htpasswd http2

图片 60

 

2、在配置文件中期维修改

vim /etc/nginx/nginx.conf 在location段中针对账户密码文件

location /images {

  auth_basic "images site"; "提示字"

  auth_basic_user_file /etc/nginx/conf.d/.htpasswd;

}

图片 61

 

3、网页查看验证

图片 62

 

推行四:达成反向代理负载均衡且情形分离

图片 63

1、意况图谋:

机器名称

IP配置

服务角色

备注

nginx

VIP:172.17.11.11

  

反向代理服务器

开启代理功能

设置监控,调度

rs01

RIP:172.17.22.22

后端服务器

stasic-srv 组

rs02

RIP:172.17.1.7

后端服务器

stasic-srv 组

rs01

RIP:172.17.77.77

后端服务器

defautl-srv 组

rs02

RIP:172.17.252.111

后端服务器

defautl-srv 组

 

2、下载编写翻译安装tengine

案由:nginx自带的监察和控制形式尽管能用,然而很精确掌握;tengine的监督方式易设简单,且是在nginx的一遍开拓,和nginx差不多

(1)官方网址下载: 还援助普通话

图片 64

解包 tar tengine-2.1.1.tar.gz

cd tengine-2.1.1

(2)下载所依附的包

yum -y groupinstall "development tools"

yum install openssl-devel -y

yum install pcre-devel -y

 

(3)编译安装

./configure --prefix=/usr/local/tengine 指虞升卿装后的目录

make && make install

 

3、设置代理服务器的布署文件

cd /usr/local/tengine/conf

cp nginx.conf /usr/local/tengine/conf/ 若机器上本有nginx,可以把安顿文件一贯拷过来,未有也可和睦安装

vim nginx.conf 全局段和 http段自家就不设置了,暗许就好

① 定义upstream:后端server 群

upstream lnmp-srv1 {
        server 172.17.22.22:80;
        server 172.17.1.7:80;
        check interval=3000 rise=2 fall=5 timeout=1000 type=http;
        check_http_send "HEAD / HTTP/1.0rnrn";
        check_http_expect_alive http_2xx http_3xx;
}
upstream lnmp-srv2 {
        server 172.17.77.77:80;
        server 172.17.252.111:80;
        server 172.17.1.7:80;
        check interval=3000 rise=2 fall=5 timeout=1000 type=http;
        check_http_send "HEAD / HTTP/1.0rnrn";
        check_http_expect_alive http_2xx http_3xx;
}

 

 

② 在server段的location 段中安装意况分离

server {
   listen 80;
   location /stats { #设置监听页面
   check_status;
 }

    location ~* .jpg|.png|.gif|.jpeg$ {
      proxy_pass http://static-srv;
   }
    location ~* .css|.js|.html|.xml$ {
      proxy_pass http://static-srv;
   }
   location / {
     proxy_pass http://default-srv;
   }
}

 

 

4、启动tengine服务

cd /usr/local/tengine/sbin/

./nginx 启动tengine

./nginx -s stop 停止

 

5、开启后端的web服务

systemctl start nginx

systemctl start php-fpm

systemctl start mariadb

 

6、测试

(1)测验反向代理是或不是中标 web页面访谈成功

图片 65

(2)测量检验状态页面

图片 66

 

(3)测量试验情状分离

把静态页面包车型地铁后端server组的服务宕机,开采未有静态的事物了

图片 67

 

 

试验五:nginx实现缓存作用

图片 68

须求深入分析:为啥需求缓存?

缓存的最根本的指标是为了做实网址质量, 减轻频繁探访数据 , 而给数据库带来的压力 。 合理的缓存 , 还可能会缓慢解决程序运算时 , 对CPU 带来的下压力。在Computer今世布局中, 操作内部存款和储蓄器中的多寡比操作存放在硬盘上的数据是要快N 个数据级的 , 操作轻巧的公文结构的数据 , 比操作数据库中的数据快N 个数据级 。

诸如: 每一趟顾客访谈网址, 都必得从数据库读取网址的标题, 每读三遍索要15 皮秒的年华, 假设有100 个顾客( 先不思考同不时候访谈), 每小时访谈10 次, 那么就必要读取数据库一千 次, 须求时日1五千 飞秒. 假若把页面一向形成页面缓存,则每便访谈就不供给去数据库读取,大大提高了网址品质。

 

1、碰着计划:同上试验,实验结构图如下:

图片 69

 

2、设置代理服务器的计划文件

① 先在http段定义缓存

proxy_cache_path /data/cache levels=1:2:2 keys_zone=proxycache:10m inactive=120s max_size=1g

分析:定义一个缓存,路线在/data/cache 下;三级目录,第顶尖[0-f]随意数字,第二、三级[00-ff]随机数字;定义缓存的名字proxycache,缓存大小10M;存活时间120s;在磁盘占用空间最大1G。

 

② 再在server段征引缓存

proxy_cache proxycache; # 引用上面定义上的缓存空间,同一缓存空间可以在几个地方使
用
proxy_cache_key $request_uri; #对uri做hash运算
proxy_cache_valid 200 302 301 1h; #200、302、301响应码的响应内容的缓存1小时
proxy_cache_valid any 1m; #其它缓存1分
add_header Along-Cache "$upstream_cache_status form $server_addr"; # 给请求响应增加一个头部信息,表示从服务器上返回的cache

图片 70

 

3、测试:访问 ,F12调节和测验方式下,看见本身安装的特定尾部存在

图片 71

缓存目录也生成了缓存

图片 72

 

实战一:搭建lnmp及类金立等商业网址的贯彻 境遇:关闭防火墙,selinux 1、安...

本文由星彩网app下载发布于星彩网app下载,转载请注明出处:品种实战1,nginx负载均衡实例

TAG标签: 星彩网app下载
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。