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
/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 install5.进入到utils目录下执行安装脚本
./install_server.sh
6.查看redis端口号
7.重新启动redis
测试
浏览器输入172.25.13.1
第一次访问的是mysql里内容,因为第一次是没有缓存的刷新之后,第二次访问时,访问的时redis缓存里内容。因为刚才已经把mysql里内容缓存到redis里