LNMP项目部署
介绍
项目的生命周期
- 策划:老板+产品+UI设计
- 实施:前端开发(客户端页面)+后端开发(ava php python等)+测试
- 上线:运维
- 维护:运维
- 结束
运维工作内容
- 项目策划,实施之初,进行准备工作,学习对应架构和方案
- 服务器上搭建代码版本控制器
- 为测试人员搭建测试环境
- 部署项目上线
- 项目后期维护
分布式集群
-
集群:多台服务器在一起作同样的事
-
分布式 :多台服务器在一起作不同的事
-
常用架构
- 负债均衡LB
- 高可用HA
- 数据库主从复制M-S
- 读写分离R-W
- 缓存中间件:memcached、Redis
- 非关系型数据库:mongodb
项目背景
- 年份:2021
- 发布产品类型:互联网动态站点 社区论坛 商城 社交类站点
- 用户数量:100-500
- PV:页面访问数量,点击量,1000-3000(24小时访问次数总和)
- QPS:并发量,吞吐量,5-10(每秒访问查询次数)
- 计算:pv/时间 = qps
- 压测:使用ab等并发测试软件,在规定时间发送一定的请求数量
- TPS:每秒事务次数,5-10
- RPS:每秒请求次数,5-10
- DAU:每日活跃用户数,日活数,10-50
软件架构
- C/S client/server
- B/S browser/server
不管是C还是B,都是属于前端客户端
运维人员主要负责和管理的是server端,也统称为服务器端
- LAMP:Linux+Apache+MySQL+PHP
- LNMP:Linux+Nginx+MySQL+PHP
- LNMPA:Linux+Nginx+MySQL+PHP+Apache
- LNMT:Linux+Nginx+MySQL+Tomcat
环境准备
最小化安装centOs6.9
安装vim
[root@server02 ~]# yum install -y vim
已加载插件:fastestmirror
设置安装进程
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
错误:Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again
报错:Cannot retrieve repository metadata (repomd.xml) for repository: base.
原因:CentOS6已经在2020年11月30日停止维护了。centos官方停止了对centos6的所有更新,并且下架了包括官方所有的centos6源,目前阿里、163、清华等centos6源已无法使用
解决:如下
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
vi /etc/yum.repos.d/CentOS-Base.repo
#编写
[centos-office]
name=centos-office
failovermethod=priority
baseurl=https://vault.centos.org/6.10/os/x86_64/
gpgcheck=1
gpgkey=https://vault.centos.org/6.10/os/x86_64/RPM-GPG-KEY-CentOS-6
yum list
yum install -y vim
配置vim
echo "set nu" >> /root/.vimrc
echo "set ts=4" >> /root/.vimrc
sed -i "8calias grep='grep --color'" /root/.bashrc
source /root/.bashrc
关闭防火墙
service iptables stop
chkconfig iptables off
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
修改主机名
vim /etc/sysconfig/network
#修改为
HOSTNAME=server01
su
域名解析
vim /etc/hosts
#追加
192.168.139.128 server01.lnmp.com server01
时间同步
yum -y install ntp
service ntpd start
chkconfig ntpd on
ntpdate cn.ntp.org.cn
LNMP部署
MySQL安装
编译参数的说明
编译参数 | 说明 |
---|---|
-DCMAKE_INSTALL_PREFIX | 安装到的软件目录 |
-DMYSQL_DATADIR | 数据文件存储的路径 |
-DSYSCONFDIR | 配置文件路径 (my.cnf) |
-DENABLED_LOCAL_INFILE=1 | 使用localmysql客户端的配置 |
-DWITH_PARTITION_STORAGE_ENGINE | 使mysql支持分表 |
-DEXTRA_CHARSETS | 安装支持的字符集 |
-DDEFAULT_CHARSET | 默认字符集使用 这里配置为utf8mb4 |
-DDEFAULT_COLLATION | 连接字符集 |
-DWITH_SSL | 开启mysql的ssl使用 |
初始化参数说明
初始化参数 | 说明 |
---|---|
–basedir | 安装到的软件目录 |
–datadir | 数据文件存储路径 |
–user | mysql使用的用户 |
脚本安装及其初始化
[root@server01 ~]# yum install -y lrzsz
[root@server01 ~]# mkdir /root/soft
[root@server01 ~]# cd /root/soft
[root@server01 soft]# rz
#传入mysql-5.6.33.tar.gz软件包
[root@server01 ~]# vim mysql_install.sh
#!/bin/bash
#源码编译安装MySQL
mysql_install() {
#1、创建用户
`id mysql` &>/dev/null
[ $? -ne 0 ] && useradd -s /sbin/nologin -M mysql
#2、解决依赖
yum install -y cmake ncurses-devel
#3、编译安装
cd /root/soft
tar zxvf mysql-5.6.33.tar.gz
cd mysql-5.6.33
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SSL=bundled
make && make install
#配置文件
rm -rf /etc/my.cnf
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
#授权并初始化数据库
chown -R mysql:mysql /usr/local/mysql
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr