必赢手机app下载 / Blog / 必赢手机app下载 / nginx负载均衡实例,使用nginx利用虚拟主机搭建WordPress博客
图片 46

nginx负载均衡实例,使用nginx利用虚拟主机搭建WordPress博客

实例全体框架:

烂泥:使用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:7000,何况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博客,已经完毕。

图片 44

用wordpress在二级目录下建博客,主机是nginx的虚构主机怎举办伪静态设置?空间商说必需用独立主机

能够投身二级目录下,把wordpress上传到二级目录,访谈安装就能够。
 

 

怎在设想主机上搭建一个网址

搭建贰个wordpress网址,需求空间支撑php程序,有赠送mysql数据库才行,多少个100-200M的长空,数据库大约50M就基本上了。有个
E世纪主机
里标的叁个基础性空间和那几个布局大概,一百多块钱一年,无需付费的民用以为有一点牢固、也没怎么技能帮忙,须要帮扶的时候倒霉找人,依旧花点钱,也没有多少,找人的时候轻巧。你购买好了,你能够交换网址上的技艺援救帮你安装一个,你也得以和煦下载二个wordpress
上去,然后访谈你的域名依照提醒操作就可以。
 

本文由秀依林枫提供友情赞助,头阵于烂泥行天下。 如今始发打算攻读nginx
web服…

 使用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)。

搭建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;

搭建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

nginx2配置进程同nginx1.

搭建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

顾客端进行访谈:

1、修改hosts:

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

2、访问:

图片 45 
 
  图片 46

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)

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)

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图