LAMP简介
LAMP是典型的电商架构,其是linux/nuix/windows+apache/nginx+mysql/pgsql+php/python/golang结构的简称。
(本篇各软件的安装将使用源码压缩包安装,旨在培养源码安装能力,虽然目前企业中安装软件使用的是rpm包,但是源码安装软件也是必备技能。)
制作rhel7.6母盘
目前redhat已经更新到8.3版本,但是由于各种原因,企业中应用的还是以rhel7为主,因此开始先制作rhel7.6的母盘,由母盘可以出创建出多台设备,其原理类似于VMware中创建链接克隆,其优点在于占用硬盘资源极少,在不开机时只有2M左右。
-
在vmware或KVM中安装rhel7.6(安装时选择最小化安装;在实验阶段可以选择关闭kdump以减少系统资源;开机时按e加上selinux=0不开启selinux)
-
安装完成后,配置静态网络
-
设置yum源:在物理机(rhel)中安装httpd,发布网络软件仓库,在rhel7.6中配置yum源,并用
yum repolist
检查yum源
-
关闭防火墙,关闭NetworkManager,设置selinux为disabled
systemctl disable --now firewalld
systemctl disable --now NetworkManager
vim /etc/selinux/config
-
创建母盘
在物理机中安装virt-sysprep
使用virt-sysprep -d 虚拟机名
清理信息
virt-sparsify --compress 虚拟机名.qcow2 母盘名.qcow2
生成rhel母盘
qemu-img create -f qcow2 -b 母盘名.qcow2 node1
利用母盘创建node1
注:此过程类似与VMware中使用链接克隆,如果本身linux就装在VM中,可以直接使用链接克隆,如果物理机为linux,使用KVM执行以上步骤。
Nginx
什么是nginx
Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP/SMTP服务。
Nginx是一款轻量级的Web服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
nginx的作用
正向代理
正向代理,是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端,客户端才能使用正向代理。当需要把你的服务器作为代理服务器时,可以用Nginx来实现正向代理。
反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet上 的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
负载均衡
负载均衡就是将一个任务分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务,简单而言就是当有2台或以上服务器时,根据规则随机的将请求分发到指定的服务器上处理。负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡,而Nginx目前支持自带3种负载均衡策略,还有2种常用的第三方策略。
HTTP服务器
Nginx本身也是一个静态资源的服务,当只有静态资源的时候,就可以使用Nginx来做服务器,同时现在也很流行动静分离,就可以通过Nginx来实现。动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。
优点
-
高并发量:根据官方给出的数据,能够支持高达 50,000 个并发连接数的响应
-
简单稳定:配置简单,基本在一个conf文件中配置,性能比较稳定,可以7*24小时长时间不间断运行
-
内存消耗少:处理静态文件,同样起web 服务,比apache 占用更少的内存及资源,所以它是轻量级的
-
模块化程度高:Nginx是高度模块化的设计,编写模块相对简单,包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter,* 支持 SSL 和 TLSSNI。
-
支持Rwrite重写规则:能够根据域名、URL的不同, 将HTTP请求分发到不同的后端服务器群组。
-
低成本:Nginx可以做高并发的负载均衡,且Nginx是开源免费的,如果使用F5等硬件来做负载均衡,硬件成本比较高。
*支持多系统:Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows,由于Nginx是免费开源的,可以在各系统上编译并使用。
缺点 -
动态处理差:nginx处理静态文件好,耗费内存少,但是处理动态页面则很鸡肋,现在一般前端用nginx作为反向代理抗住压力,apache作为后端处理动态请求。
-
rewrite弱:虽然nginx支持rewrite功能,但是相比于Apache来说,Apache比nginx 的rewrite 强大。
nginx官网
docs.nginx.com
里面有nginx详细的配置方案
安装Nginx
tar zxf nginx-1.18.0.tar.gz
解压安装包
扩展资料:
Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure --help输出详细的选项列表。其中,prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share,比较凌乱。如果配置prefix,如:
./configure --prefix=/usr/local/nginx可以把所有资源文件放在/usr/local/nginx的路径中,不会杂乱。
后面还会用到cmeke,gmake编译
./configure与cmake详见文末
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
运行安装脚本,并根据提示逐一解决依赖性
其中–prefix=/usr/local/nginx表示自定义安装目录, – with-XXX_ module选项表示指明安装对应的模块,–without-XXX_ module选项表示指明不安装对应的模块
yum install -y gcc
vim auto/cc/gcc
注释debug
yum install -y pcre-devel
提示缺少PCRE动态库,而库包含很多文件,-devel指相应的开发包
yum install -y openssl-devel
加-devel,原因同上
此时./configure --prefix=/usr/local/nginx --with-http_ssl_module
脚本运行成功,接下来编译安装软件
ll Makefile
查看是否出现Makefile(注意Make首字母大写)
make && make install
前者是编译后者是安装
cd /usr/local/nginx/sbin
进入安装目录下的sbin才能执行以下命令
./nginx
启动nginx
./nginx -v
查看版本信息
./nginx -t
检查配置文件有没有错误
./nginx -s stop
关闭nginx
yum install -y net-tools.x86_64
在rhel7中不能使用netstat命令,需安装net-tools
netstat -antlp | grep :80
查看是启动还是关闭状态
测试
Bingo!!!
mysql
DQL DCL DML DDL
源码安装mysql并逐一解决依赖性
在mysql 官网 https://www.