网站架构(LNMP)
说明:
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)的更多相关文章
- 九.LNMP网站架构实践部署
期中集群架构-第九章-期中架构LNMP章节====================================================================== 01. LNMP ...
- keepalived+nginx+lnmp 网站架构
<网站架构演变技术研究> 项目实施手册 2019年8月2日 第一章: 实验环境确认 4 1.1-1.系统版本 4 1.1-2.内核参数 4 1.1-3.主机网络参数设置 4 1-1-4 ...
- 项目实战2—实现基于LVS负载均衡集群的电商网站架构
负载均衡集群企业级应用实战-LVS 实现基于LVS负载均衡集群的电商网站架构 背景:随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,网站已经不堪重负,响 ...
- 10.Nginx流行架构LNMP
1.什么是LNMP架构 LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写.L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以 ...
- 前端学HTTP之网站架构演化
前面的话 本文将详细介绍网站架构的演化过程 初始阶段 大型网站都是从小型网站发展而来,网站架构也是一样,是从小型网站架构逐步演化而来.小型网站最开始时没有太多人访问,只需要一台服务器就绰绰有余,这时的 ...
- 高性能网站架构设计之缓存篇(5)- Redis 集群(上)
集群技术是构建高性能网站架构的重要手段,试想在网站承受高并发访问压力的同时,还需要从海量数据中查询出满足条件的数据,并快速响应,我们必然想到的是将数据进行切片,把数据根据某种规则放入多个不同的服务器节 ...
- (转)高性能网站架构之缓存篇—Redis集群搭建
看过 高性能网站架构之缓存篇--Redis安装配置和高性能网站架构之缓存篇--Redis使用配置端口转发 这两篇文章的,相信你已经对redis有一定的了解,并能够安装上,进行简单的使用了,但是在咱们的 ...
- 优酷、YouTube、Twitter及JustinTV视频网站架构设计笔记
本文是整理的关于优酷.YouTube.Twitter及JustinTV几个视频网站的架构或笔记,对于不管是视频网站.门户网站或者其它的网站,在架构上都有一定的参考意义,毕竟成功者的背后总有值得学习的地 ...
- 【架构】浅谈web网站架构演变过程
浅谈web网站架构演变过程 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变. 该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管 ...
随机推荐
- vue上传大文件控件
文件上传是 Web 开发肯定会碰到的问题,而文件夹上传则更加难缠.网上关于文件夹上传的资料多集中在前端,缺少对于后端的关注,然后讲某个后端框架文件上传的文章又不会涉及文件夹.今天研究了一下这个问题,在 ...
- am335x system upgrade kernel emmc(十八)
1 Scope of Document This document describes EMMC hardware design 2 Requiremen 2.1 Func ...
- 数据结构实验之查找四:二分查找(SDUT 3376)
#include <stdio.h> #include <string.h> #include <stdlib.h> int a[1000005]; int fin ...
- 传统PC机I/O位址空间范围
空间范围是0x000--0x3FF,有1024个I/O端口位址可供使用! 使用EISA或PCI等汇流排结构的现代PC机,有64KB的I/O位址空间可供使用.在普通Linux系统下透过查看/proc/i ...
- HDU 4609 3-idiots ——(FFT)
这是我接触的第一个关于FFT的题目,留个模板. 这题的题解见:http://www.cnblogs.com/kuangbin/archive/2013/07/24/3210565.html. FFT的 ...
- 2017杭电ACM集训队单人排位赛 - 2 题解
1001,水题,直接模拟即可.比赛中开局连wa三发,因为把int写成了bool.. 1002,积分题,比赛中找到了下面这个积分公式, 但是并没什么用,,因为带入以后存在误差,估计是展开了以后出现了误差 ...
- 史上最好用的依赖注入框架Google Guice【转】
Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC).Guice非常小而且快. (其他的依赖注入框架还有Dagger,Spring) Spring ...
- [Ubuntu] A start job is running for...interfaces
CPU:RK3288 系统:Linux 移植 Ubuntu 16.04 到嵌入式平台,如果以太网有问题,在这里会耗时大约5分钟 开机后可以修改 Ubuntu 配置来缩短时间 打开下面的文件,可以看到最 ...
- VMware Workstation虚拟机打开系统时,提示“无法打开内核设备“\\.\Global\vmx86”: 系统找不到指定的文件。是否在安装 VMware Workstation 后重新引导?”
VMware Workstation虚拟机打开系统时,提示“无法打开内核设备“\\.\Global\vmx86”: 系统找不到指定的文件.是否在安装 VMware Workstation 后重新引导? ...
- 线程池 | Java多线程,彻底搞懂线程池
熟悉Java多线程编程的同学都知道,当我们线程创建过多时,容易引发内存溢出,因此我们就有必要使用线程池的技术了. 最近看了一些相关文章,并亲自研究了一下源码,发现有些文章还是有些问题的,所以我也总结了 ...