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

在这里插入图片描述
2.安装依赖性:

yum install pcre-devel zlib-devel gcc -y

4.配置文件vim auto/cc/gcc,将debug注释掉后编译:
在这里插入图片描述
在这里插入图片描述

5.编译

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

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

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

在这里插入图片描述

8.开启nginx:

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

在这里插入图片描述
9. 安装php,下载安装所需的安装包
在这里插入图片描述
10. 开启php:
systemctl start php-fpm
11. 通过端口查看是否开启(9000端口):

netstat -tnlp

在这里插入图片描述
12. 下载测试页面test.php并重新命名为index.php
在这里插入图片描述
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.修改配置文件中优先级
在这里插入图片描述
15.重新加载nginx

扫描二维码关注公众号,回复: 9190877 查看本文章
 /usr/local/nginx/sbin/nginx -s reload

在这里插入图片描述

server3:(mysql)
1.查看之前是否安装mysql :

rpm -qa | grep mysql

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

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

在这里插入图片描述
4.安装mariadb

yum install -y mariadb-server

5.将以前安装过mysql编译的文件删除
在这里插入图片描述
6.开启mariadb

systemctl start mariadb

7.安全初始化

mysql_secure_installation

在这里插入图片描述
8.进入数据库,创建test数据库
在这里插入图片描述
9.将数据库导入:

mysql -predhat < test.sql

在这里插入图片描述在这里插入图片描述
server2:(redis作缓存)
1.安装依赖性gcc

yum install gcc -y

2.下载安装包并解压
在这里插入图片描述

3.因为解压后文件中有Makefile,所以直接make(如果make不成功,则加入参数make MALLOC=libc后再make)
4.make install
在这里插入图片描述

5.进入到utils目录下执行安装脚本

./install_server.sh

在这里插入图片描述

6.查看redis端口号
在这里插入图片描述
7.重新启动redis
在这里插入图片描述
在这里插入图片描述
测试
浏览器输入172.25.13.1
第一次访问的是mysql里内容,因为第一次是没有缓存的
在这里插入图片描述
刷新之后,第二次访问时,访问的时redis缓存里内容。因为刚才已经把mysql里内容缓存到redis里
在这里插入图片描述

发布了108 篇原创文章 · 获赞 127 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/chaos_oper/article/details/90183482
今日推荐