LNMP架构

LNMP架构软件安装

架构组成

Linux	(安全服务关闭 /tmp/目录权限是否是1777)
nginx	(1.16.1)
php		(7.1)
mariadb	(yum安装最新)

nginx安装

第一步

yum install -y yum-utils

第二步

vim /etc/yum.repos.d/nginx.repo

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

第三步

yum-config-manager --enable nginx-mainline

第四步

yum install -y nginx

php软件安装

第一步: 解决yum安装软件冲突问题

yum remove php-mysql php php-fpm php-common

第二步: 更新php程序yum下载源

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

第三步: 安装php软件和相关依赖

yum install -y php71w php71w-cli php71w-common php71w-devel php71w-embedded  php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache  php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb

第四步: 启动服务程序

systemctl start php-fpm

mariadb 软件安装

yum install mariadb-server mariadb -y

LNMP架构原理说明

1) 用户向网站发起访问
	a 静态请求访问
	b 动态请求访问
2) nginx程序接受用户HTTP请求信息
	a 静态请求信息  由nginx程序直接作出响应
	b 动态请求信息  由nginx借助fastcgi_pass指令将请求通过fastcgi接口发送给php程序进行处理
3) php程序接受nginx发送动态请求信息
	a 本身可以直接处理    通过解析器直接处理    转换成html代码信息返回给nginx程序
	b 需要调用数据库处理  通过解析器访问数据库	 数据库会进行处理后返回给php结果
4) nginx接收php返回的信息
	将结果信息返回给用户

分析LNMP架构问题

1) nginx服务程序是否出现问题
2) php服务程序是否出现问题
3) mariadb服务程序出现问题

LNMP架构部署配置过程

nginx + php程序进行串联

完整配置
server {
    listen       80;
    server_name  blog.test.com;
    root         /html/blog;
    index        index.html index.htm index.php;
    location ~ \.php$ {
           root /html/blog; 
           fastcgi_index index.php;
           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
           fastcgi_pass  127.0.0.1:9000;
           include fastcgi_params;
     }
 } 
验证测试
cd /html/blog/
vim test.php 

php + mariadb建立关系: 由开发人员

php连接数据库代码

利用LNMP架构构建动态网站

第一步: 需要获取网站动态代码信息

blog动态网站代码:开源代码
将代码解压,将解压后代码信息复制到站点目录中
unzip wordpress-5.3-zh_CN.zip
mv wordpress/* /html/blog/

第二步: 修改站点目录权限信息

chown -R  nginx.nginx  /html/blog

第三步: 进行网站搭建初始化配置

http://blog.test.com/index.php
http://blog.test.com/wp-admin/setup-config.php	--- 网站初始化页面
 
mysqladmin -uroot password "test123"
mysql -uroot -ptest123 -hlocalhost
create database blog;  --- 创建数据库信息
show databases;	--- 查看数据库信息
grant  all  on blog.* to 'blog'@'localhost' identified by 'test123';
select user,host from mysql.user;		--- 检查数据库信息
show global variables like "%datadir%";	--- 查看储存数据目录

第四步: 直接访问网站页面

动态网站搭建后如何上传数据

解决数据无法上传方式

方式一: 修改站点目录权限(php进程用户权限)
chown -R apache.apache /html/blog/
方式二: 修改php程序进程用户和nginx程序进程用户保持统一
vim /etc/php-fpm.d/www.conf
	8 user = nginx
	10 group = nginx
	systemctl restart php-fpm

客户端上传数据大小限制

限制因素1: 由于nginx服务影响
Syntax: 	client_max_body_size size;
Default: 	client_max_body_size 1m;
Context: 	http, server, location
限制因素2: 由于php服务影响
vim /etc/php.ini
	upload_max_filesize = 2M  -- 调整大小为10M

LNMP架构网站数据分离操作

分离数据库服务原因

可以实现数据共享统一存储

数据库服务数据迁移过程

第一步: 备份数据信息(迁移之前web服务器)
mysqldump -uroot -ptest123  -A > /tmp/backup.sql
第二步: 迁移数据信息(迁移之前web服务器)
scp -rp /tmp/backup.sql  172.16.1.51:/tmp/
第三步: 恢复数据信息(迁移之后数据库服务器)
mysql -uroot -ptest123  < /tmp/backup.sql

补充说明: mysqladmin 设置密码信息/修改密码信息, 不能实现破解密码

设置密码命令
  mysqladmin -u username password “initpassword”
修改密码命令
  mysqladmin -u username -p password newpassword
查看数据库的表信息
  show databases;

数据数据迁移完毕后续操作过程

可以关闭本地数据库服务(web)

systemctl stop mariadb.service
systemctl disable mariadb.service

需要修改连接数据库代码信息(web)

cd /html/blog/
vim wp-config.php
	32 define( 'DB_HOST', '172.16.1.51' );

需要调整数据配置信息(db)

grant all on blog.* to 'blog'@'172.16.1.%' identified by 'test123';

LNMP架构网站串联存储服务

串联过程实践

第一步: 将本地存储好数据进行保存备份
mkdir /tmp/blog_backup
mv /html/blog/wp-content/uploads/* /tmp/blog_backup/
第二步: 检查确认存储服务是否可以正常使用
showmount -e 172.16.1.31
第三步: 进行存储服务挂载操作
mount -t nfs 172.16.1.31:/data/blog/  /html/blog/wp-content/uploads/
第四步: 将之间备份数据进行恢复(本地数据传递存储服务器)
mv /tmp/blog_backup/*  /html/blog/wp-content/uploads/

你可能感兴趣的:(Linux,集群架构)