Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)

实验环境

主机名 功能
server1 nginx服务器
server2 redis缓存
server3 mysql

一.LNMP和Redis

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。

  • Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。
    Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
  • Mysql是一个小型关系型数据库管理系统。
  • PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
    这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统
  • Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

二.搭建LNMP网站服务器架构

server1:(nginx服务器)
1.下载安装nginx:

tar zxf nginx-1.16.0.tar.gz

Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)
2.安装依赖性:

yum install pcre-devel zlib-devel gcc -y

4.配置文件vim auto/cc/gcc,将debug注释掉后编译:
Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)
Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)5.编译

./configure --prefix=/usr/local/nginx

5.make && make install
6. 配置文件 :将php打开 将index.php添加上

vim /usr/local/nginx/conf /nginx.conf

Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)

8.开启nginx:

/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/conf/sbin/nginx

Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)
9. 安装php,下载安装所需的安装包
Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)
10. 开启php:
systemctl start php-fpm
11. 通过端口查看是否开启(9000端口):

netstat -tnlp

Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)
12. 下载测试页面test.php并重新命名为index.php
Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)
13. 修改测试页面的index.php 将redis和mysql的ip更改好,数据库密码设置好

<?php
        $redis = new Redis();
        $redis->connect('172.25.13.2',6379) or die ("could net connect redis server");
  #      $query = "select * from test limit 9";
        $query = "select * from test";
        for ($key = 1; $key < 10; $key++)
        {
                if (!$redis->get($key))
                {
                        $connect = mysql_connect('172.25.13.3','redis','westos');
                        mysql_select_db(test);
                        $result = mysql_query($query);
                        //如果没有找到$key,就将该查询sql的结果缓存到redis
                        while ($row = mysql_fetch_assoc($result))
                        {
                                $redis->set($row['id'],$row['name']);
                        }
                        $myserver = 'mysql';
                        break;
                }
                else
{
                        $myserver = "redis";
                        $data[$key] = $redis->get($key);
                }
        }

        echo $myserver;
        echo "<br>";
        for ($key = 1; $key < 10; $key++)
        {
                echo "number is <b><font color=#FF0000>$key</font></b>";

                echo "<br>";

                echo "name is <b><font color=#FF0000>$data[$key]</font></b>";

                echo "<br>";
        }
?>

14.修改配置文件中优先级
Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)
15.重新加载nginx

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

Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)server3:(mysql)
1.查看之前是否安装mysql :

rpm -qa | grep mysql

2.删除已经安装的mysql(之前安装过mysql)

rpm -e `rpm -qa | grep mysql` --nodeps

Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)
4.安装mariadb

yum install -y mariadb-server

5.将以前安装过mysql编译的文件删除
Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)
6.开启mariadb

systemctl start mariadb

7.安全初始化

mysql_secure_installation

Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)
8.进入数据库,创建test数据库
Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)
9.将数据库导入:

mysql -predhat < test.sql

Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)server2:(redis作缓存)
1.安装依赖性gcc

yum install gcc -y

2.下载安装包并解压
Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)3.因为解压后文件中有Makefile,所以直接make(如果make不成功,则加入参数make MALLOC=libc后再make)
4.make install
Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)5.进入到utils目录下执行安装脚本

./install_server.sh

Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)6.查看redis端口号
Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)7.重新启动redis
Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)
Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)测试
浏览器输入172.25.13.1
第一次访问的是mysql里内容,因为第一次是没有缓存的
Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)刷新之后,第二次访问时,访问的时redis缓存里内容。因为刚才已经把mysql里内容缓存到redis里
Linux系统下Nginx+MySQL+PHP网站服务器架构(redis缓存)