说明:

1)LNMP架构的组成(作用)

2)LNMP架构的部署

3)LNMP架构通讯原理

4)LNMP服务之间如何建立管理

nginx+php   运维负责

php+mysql   开发负责

5) 运维人员代码上线 (www bbs blog)
*6) NFS服务和web服务

mysql服务和web服务 (企业案例:数据库迁移方法)

1) nginx服务的企业应用(nginx模块)
a 实现网站页面目录索引功能 (yum仓库搭建)
b 实现网站访问别名功能 server_name
c 实现网站页面用户访问监控 keepalived_timeout 65s
HTTP请求报文: 请求头---connection: keepalived.../closed 短连接
HTTP响应报文: 响应头---connection: closed 短连接
VPN---无法访问外网/xshell无法远程连接
d 实现网站服务日志功能配置
错误日志: 错误日志级别
访问日志: 日志的格式信息 自动化分析日志(ELK 三个软件)
e 根据用户访问uri进行匹配处理
location = xxx 精确匹配 优先级01
location ^~ xxx 优先匹配 优先级02
location ~ 区分大小写匹配 优先级03
location ~* 不区分大小写 优先级03
location uri 根据uri进行匹配 优先级03
location / 默认匹配 优先级最低
企业应用: 京东网站location应用 --- 11.11 12.12 6.18 --- 页面信息和平常不一样
有两个站点目录:
平常网站的站点目录 /html/jd-normal
节日网站的站点目录 /html/jd-teshu
location / { root /html/jd-normal }
location /特殊 { root /html/jd-teshu }
f 网站页面跳转功能
rewrite 匹配地址(url uri) 跳转成什么地址(url uri)
return 301 http://xxxx

02. 网站的LNMP架构是什么:
L --- linux系统
注意:
a selinux必须关闭 防火墙关闭
b /tmp 1777 mysql服务无法启动

N --- nginx服务部署
作用:
处理用户的静态请求 html jpg txt mp4/avi

P --- php服务部署
作用:
1. 处理动态的页面请求
2. 负责和数据库建立关系

M --- mysql服务部署 (yum会很慢 编译安装会报错) mariadb
作用:
存储用户的字符串数据信息

03. 网站的LNMP架构部署
nginx服务 --- ansible一键化部署 修改yum源
mysql服务部署:
第一个历程: 安装数据库软件
yum install mariadb-server mariadb -y

补充: 数据库初始化过程 mysql_install_db
--basedir=path The path to the MariaDB installation directory.
指定mysql程序目录
--datadir=path The path to the MariaDB data directory.
指定数据信息保存的目录
--user=mysql 让mysql管理数据目录 700

信息输出内容:
创建数据库的密码信息:
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/application/mysql/bin/mysqladmin -u root password 'new-password' --- 给本地数据库设置密码
/application/mysql/bin/mysqladmin -u root -h web01 password 'new-password' --- 给远程数据库设置密码

第二个历程: 启动数据库服务
systemctl start mariadb.service
systemctl enable mariadb.service

第三个历程: 给mysql数据库服务设置密码
mysqladmin -u root password 'oldboy123' --- 设置密码
mysql -u root -poldboy123

PHP服务部署流程:
第一个历程: 更新yum源/卸载系统自带的PHP软件
yum remove php-mysql php php-fpm php-common
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

第三个历程: 编写配置文件
vim /etc/php-fpm.d/www.conf
user = www nginx---www
group = www
PS: 保证nginx进程的管理用户和php服务进程的管理用户保持一致

第四个历程: 启动php服务
systemctl start php-fpm

04. LNMP架构的原理
用户访问网站--->nginx(fastcgi_pass) --FastCGI-->(php-fpm -- wrapper) php (php解析器) ---> mysql(读取或写入)

05. 实现LNMP之间建立关系
1. 实现nginx + php 建立关系
第一个历程: 编写nginx文件
编写nginx配置文件
location ~ \.php$ {
root /www;
fastcgi_index index.php; url uri
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params; 变量配置文件
}
重启nginx服务

第二个历程: 编写动态资源文件
[root@web01 conf.d]# cat /html/blog/test_php.php
<?php
phpinfo();
?>

第三个历程: 进行访问测试
blog.oldboy.com/test_php.php
2. 实现php + mysql 建立关系
编写php代码文件
[root@web01 blog]# vim test_mysql.php
<?php
$servername = "localhost";
$username = "root";
$password = "oldboy123";
//$link_id=mysql_connect('主机名','用户','密码');
//mysql -u用户 -p密码 -h 主机
$conn = mysqli_connect($servername, $username, $password);
if ($conn) {
echo "mysql successful by root !\n";
}else{
die("Connection failed: " . mysqli_connect_error());
}
?>

06. 部署搭建网站页面(代码上线)
第一个历程: 获取代码信息(git)---使用开源的网站代码
www网站页面: http://www.dedecms.com/
bbs网站页面: http://www.discuz.net/forum.php
blog网站页面: https://cn.wordpress.org/
wecenter网站页面: http://www.wecenter.com/?copyright

第二个历程: 将代码解压,将解压后信息放入到站点目录中
tar xf wordpress-5.2.1.tar.gz
mv ...

第三个历程: 修改站点目录权限
chown -R www.www blog

第四个历程: 进行网站页面初始化操作

第五个历程: 对数据库服务进行配置
创建数据库: create databases wordpress;
检查: show databases;
创建数据库管理用户: grant all on wordpress.* to 'wordpress'@'localhost' identified by 'oldboy123';
检查: select user,host from mysql.user

第六个历程: 利用blog网站发布博文

总结:
1. LNMP架构的组成部分
2. LNMP架构的部署安装
3. LNMP架构的工作原理
4. LNMP架构的服务如何建立关系
nginx --- php
php --- mysql
5. 利用LNMP架构搭建了一个网站

网站架构(LNMP)的更多相关文章

  1. 九.LNMP网站架构实践部署

    期中集群架构-第九章-期中架构LNMP章节====================================================================== 01. LNMP ...

  2. keepalived+nginx+lnmp 网站架构

    <网站架构演变技术研究> 项目实施手册 2019年8月2日 第一章:  实验环境确认 4 1.1-1.系统版本 4 1.1-2.内核参数 4 1.1-3.主机网络参数设置 4 1-1-4 ...

  3. 项目实战2—实现基于LVS负载均衡集群的电商网站架构

    负载均衡集群企业级应用实战-LVS 实现基于LVS负载均衡集群的电商网站架构 背景:随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,网站已经不堪重负,响 ...

  4. 10.Nginx流行架构LNMP

    1.什么是LNMP架构 LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写.L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以 ...

  5. 前端学HTTP之网站架构演化

    前面的话 本文将详细介绍网站架构的演化过程 初始阶段 大型网站都是从小型网站发展而来,网站架构也是一样,是从小型网站架构逐步演化而来.小型网站最开始时没有太多人访问,只需要一台服务器就绰绰有余,这时的 ...

  6. 高性能网站架构设计之缓存篇(5)- Redis 集群(上)

    集群技术是构建高性能网站架构的重要手段,试想在网站承受高并发访问压力的同时,还需要从海量数据中查询出满足条件的数据,并快速响应,我们必然想到的是将数据进行切片,把数据根据某种规则放入多个不同的服务器节 ...

  7. (转)高性能网站架构之缓存篇—Redis集群搭建

    看过 高性能网站架构之缓存篇--Redis安装配置和高性能网站架构之缓存篇--Redis使用配置端口转发 这两篇文章的,相信你已经对redis有一定的了解,并能够安装上,进行简单的使用了,但是在咱们的 ...

  8. 优酷、YouTube、Twitter及JustinTV视频网站架构设计笔记

    本文是整理的关于优酷.YouTube.Twitter及JustinTV几个视频网站的架构或笔记,对于不管是视频网站.门户网站或者其它的网站,在架构上都有一定的参考意义,毕竟成功者的背后总有值得学习的地 ...

  9. 【架构】浅谈web网站架构演变过程

    浅谈web网站架构演变过程   前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变.   该系统具备的功能:   用户模块:用户注册和管理 商品模块:商品展示和管 ...

随机推荐

  1. 国外最受欢迎的BT-磁力网站

    1.海盗湾 The Pirate Bay 2.KickAssTorrents 3.Torrentz 4.zooqle 5.SumoTorrent 6.TorrentDownloads 7.Rarbg ...

  2. CentOS7安装Airflow

    实验环境: centos7python3.6 安装配置: 1.看看是否有gcc,没有的话需要进行安装: yum install gcc  (后续安装airflow如果不成功,可以再次执行,它会更新包) ...

  3. visual studio code(vs code) 编译、运行、调试程序(调用g++)

    g++的安装过程忽略,记不清有没有"安装路径不能有空格"这种问题. 网上翻了几个博客,找到的配置文件在g++下都不能运行,遂折腾. 安装vscode与插件 插件为ms-vscode ...

  4. 基于Shiro的登录功能 设计思路

    认证流程 Shiro的认证流程可以看作是个“有窗户黑盒”, 整个流程都有框架控制,对外的入口只有subject.login(token);,这代表“黑盒” 流程中的每一个组件,都可以使用Spring ...

  5. Cannot initialize a variable of type 'Stu *' with an rvalue of type 'void *'

    code: 将 Stu* pStu = malloc(sizeof(Stu)); 改为Stu* pStu = (Stu*)malloc(sizeof(Stu)); code #include < ...

  6. Spring Cloud Gateway(六):路由谓词工厂 RoutePredicateFactory

    本文基于 spring cloud gateway 2.0.1 1.简介 Spring Cloud Gateway 创建 Route 对象时, 使用 RoutePredicateFactory 创建 ...

  7. zabbix (三) 所需磁盘容量计算

    一.zabbix 磁盘容量大小 zabbix的数据库大小取决于NVPS(new values per second)大小,NVPS从总体上反应了处理速度,与监控项的数目,监控项的类型,取值间隔,His ...

  8. NPM私有包部署到私有仓库

    NPM私有包部署到私有仓库1.项目部署到NPM2.私有仓库的搭建1,项目部署到NPM注册NPM账号注册地址:https://www.npmjs.com/ 注册完成后进入邮箱验证 账号登录 npm lo ...

  9. GitLab安装及备份迁移数据

    centos7安装GitLab 下载相应版本rpm包 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ 我此处下载9.3.6版本. # w ...

  10. JS 定时器的4种写法及介绍

    JS提供了一些原生方法来实现延时去执行某一段代码,下面来简单介绍一下setTiemout.setInterval.setImmediate.requestAnimationFrame. 一.什么是定时 ...