您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

源码搭建LNMP架构实战

再写一篇,给51的研究学习画上句号,也是在B站于超老师那里学习过来的~~

一、nginx

1、五个网络IO模式对比

nginx属于异步IO模式,工作处理能力较为优秀~
在这里插入图片描述
在这里插入图片描述

2、Nginx优势

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、nginx版本

Nginx如今分为商业版,开源版,⽀持Linux与Windows平台下载使⽤

  1. nginx.com 商业版
  2. nginx.org 开源版
  3. https://tengine.taobao.org/ #淘宝基础nginx进行二次开发,有更优秀的高并发处理能力

4、安装环境准备

操作系统:CentOS Linux release 7.9.2009 (Core) 虚拟机:2C4G20G NAT网络

 GCC编译环境:yum install -y gcc gcc-c++ autoconf automake make

在这里插入图片描述

模块依赖性:Nginx⽀持的功能模块需要有第三⽅的库⽀持,例如gzip的zlib
库,rewrite重写需要的pcre库,HTTPS需要的openssl库等等。

 yum install zlib zlib-devel openssl openssl-devel pcre pcre devel wget httpd-tools vim

在这里插入图片描述

系统基础开发环境:yum groupinstall "Development Tools" "Basic Web Server"

在这里插入图片描述

确保防⽕墙关闭 iptables -F
关闭selinux
yum源配置正确
⽹络连接状态正常

5、Nginx下载安装

  1. yum⾃动安装,不⽀持⾃由扩展第三⽅功能
  2. 源码编译安装

1.下载Nginx源代码 nginx.org官⽹

[root@lnamp ~]# wget https://nginx.org/download/nginx-1.14.2.tar.gz

2.解压缩Nginx源代码

[root@lnamp ~]# tar -zxf nginx-1.14.2.tar.gz

3.复制Nginx默认提供的vim语法插件

[root@lnamp ~]# cd nginx-1.14.2
[root@lnamp nginx-1.14.2]# mkdir ~/.vim
[root@lnamp nginx-1.14.2]# cp -r contrib/vim/* ~/.vim/

4.Nginx源代码⽬录介绍
auto 检测系统模块
CHANGES nginx更改记录⽂件
conf 存放nginx配置⽂件
configure 释放编译⽂件的定制脚本
contrib 提供了perl与vim插件
html 存放标准html⻚⾯语法
src 存放nginx源码

5.开始编译Nginx,扩展编译模块
#列出Nginx的编译选项,如制定安装路径,配置⽂件、⽇志⽂件等路径,指定开启模块功能等

[root@lnamp nginx-1.14.2]# ./configure --help   #可以查看相关使用命令手册

6、编译Nginx初步

[root@lnamp nginx-1.14.2]# ./configure --prefix=/home/Learn_Nginx/nginx/ --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-threads --with-file-aio

在这里插入图片描述

6.执⾏make编译

make

在这里插入图片描述

7.⾸次编译安装,⽣成Nginx的可执⾏命令

make install

在这里插入图片描述

8.检查Prefix指定的安装⽬录

[root@lnamp ~]# cd nginx-1.14.2 ls /home/Learn_Nginx/
nginx

9.Nginx的程序⽬录

[root@lnamp nginx-1.14.2]# cd /home/Learn_Nginx/nginx
[root@lnamp nginx]# ls

在这里插入图片描述
依次是配置⽂件,静态⽂件,⽇志,⼆进制命令⽬录

10.创建nginx的环境变量⽂件,修改如下,创建/etc/profile.d/nginx.sh
脚本⽂件便于以后维护

[root@lnamp nginx]# vim /etc/profile.d/nginx.sh

export PATH=/home/Learn_Nginx/nginx/sbin:$PATH

在这里插入图片描述
11.退出会话,重新登录终端,此时可以正常使⽤nginx

[root@lnamp ~]# echo $PATH
/home/Learn_Nginx/nginx/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

12.检查nginx的编译模块信息
在这里插入图片描述

Nginx Nginx配置⽂件语法

在这里插入图片描述
在这里插入图片描述

nginx.conf指令注释

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

nginx.conf重要的指令块

在这里插入图片描述

Nginx命令⾏

在这里插入图片描述

nginx帮助指令

在这里插入图片描述
nginx默认为80访问端口,启动后在浏览器验证
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Nginx-master信号

在这里插入图片描述
在这里插入图片描述

热部署(版本更换)

热部署指的是 在不重启或关闭进程情况下,新应⽤直接替换掉旧的应⽤
在这里插入图片描述

环境准备:
旧版本:nginx/1.14.2
新版本:nginx/1.18.0
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

热部署具体操作

1.备份旧版本的nginx⼆进制⽂件
2.检查旧版本nginx的编译参数
在这里插入图片描述

3.编译安装新版本nginx

[root@lnamp sbin]# cd /home/Learn_Nginx/
#下载新nginx源码
wget https://nginx.org/download/nginx-1.18.0.tar.gz    #新版本下载地址

[root@lnamp Learn_Nginx]# tar -zxf nginx-1.18.0.tar.gz   #解压
#编译安装新版本nginx
[root@lnamp nginx-1.18.0]# ./configure --prefix=/home/Learn_Nginx/nginx/ --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-threads --with-file-aio

在这里插入图片描述

#编译安装
[root@lnamp nginx-1.18.0]# make && make install

在这里插入图片描述
4.此时发现已存在2个版本nginx程序

[root@lnamp sbin]# ls
nginx  nginx.old

5.替换旧的nginx可执⾏⽂件

cp -a /home/Learn_Nginx/nginx-1.18.0/objs/nginx /home/Learn_Nginx/nginx/sbin/

在这里插入图片描述
5.1检查旧的nginx进程,请注意,旧版本nginx之前必须是用绝对路径启动,否则发送kill -USR2 信号后无法启动新进程!!!
在这里插入图片描述

[root@lnamp Learn_Nginx]# cat nginx/logs/nginx.pid    #检查旧的nginx进程
29639

6.发送USR2信号给旧版本主进程,使得nginx旧版本停⽌接收请求,切换为新nginx版本

[root@lnamp Learn_Nginx]# kill -USR2 `cat nginx/logs/nginx.pid`
[root@lnamp Learn_Nginx]# ps -ef | grep nginx

7.检查此时的nginx进程
nginx-master⾸先会重命名pid⽂件,在⽂件后⾯添加.oldbin后缀
在这里插入图片描述

然后会再启动⼀个新的master进程以及worker,且使⽤的是新版Nginx

nginx能够⾃动将新来的请求,过度到新版master进程下,实现平滑过度

#可以发现新的master进程由旧master启动,由PPID可看出在这里插入图片描述
8.发送WINCH信号给旧master进程,优雅的关闭旧worker进程

[root@lnamp Learn_Nginx]# kill -WINCH `cat nginx/logs/nginx.pid`

在这里插入图片描述
#再次检查进程情况,旧master的worker已经关闭了,旧master不会⾃⼰退
出,⽤作版本回退

9.如果你觉得没问题了,可以关闭旧master进程

kill -9 旧进程

在这里插入图片描述

mysql

1、下载解压缩二进制mysql代码

已经编译安装完成,下载后可以直接使用命令

cd /opt
wget https://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.36-linux-glibc2.12-x86_64.tar
tar -xvf mysql-5.7.36-linux-glibc2.12-x86_64.tar   #解压

 tar -zxf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz

在这里插入图片描述

[root@lnamp mysql-5.7.36-linux-glibc2.12-x86_64]# cd bin/     #可看到很多可执行命令

在这里插入图片描述

2、配置软连接,快捷访问mysql

[root@lnamp opt]# ln -s /opt/mysql-5.7.36-linux-glibc2.12-x86_64/ /opt/mysql

在这里插入图片描述

3、安全性的准备工作,卸载centos7存在的mariadb的相关依赖关系

rpm -e --nodeps mariadb-libs

分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进