nginx负载均衡实例

2019-12-15 06:18栏目:操作系统
TAG:

实例整体框架:

烂泥:使用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:9000,并且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;

版权声明:本文由bob体育app发布于操作系统,转载请注明出处:nginx负载均衡实例