LAMP架构

本文详细介绍了LAMP架构,包括Nginx与PHP的集成,涉及Nginx、PHP的安装配置,以及PHP-fpm、memcache模块的安装和使用。同时,探讨了Nginx的高速缓存机制、OpenResty的使用,以及Nginx与MySQL的结合,涵盖主从复制、GTID复制、半同步复制等多种高可用配置。此外,还讨论了MySQL的慢查询、组复制和MHA高可用解决方案。
摘要由CSDN通过智能技术生成

LAMP/LNMP==Linux + Apache/Nginx + Mysql + Php/Python/Perl

一、Nginx与Php的结合

1、Php的安装

下载PHP安装包:PHP: Hypertext Preprocessorhttps://www.php.net

安装依赖软件:

yum install -y systemd-devel

yum install -y libxml2-devel

yum install -y sqlite-devel

yum install -y libcurl-devel

yum install -y libpng-devel

yum install -y oniguruma-6.8.2-1.el7.x86_64.rpm

yum install -y oniguruma-devel-6.8.2-1.el7.x86_64.rpm

编译安装:

2、Php的配置文件管理

php-fpm.conf是PHP-FPM特有的配置文件;php.ini是所有php模式中必需的配置文件

两者的区别是:php-fpm.conf是PHP-FPM进程管理器的配置文件;php.ini是PHP解析器的配置文件

有的PHP版本的配置文件路径中还有/fpm.d/www.conf配置文件;这是php-fpm.conf配置的文件的扩展文件,可以打开php-fpm.conf文件查看(; include=fpm.d/*.conf)

【1】文件配置

【2】php-fpm配置文件更改

##打开php管理进程

【3】 php.ini配置文件更改

##配置时区

3、配置Php-fpm的守护进程启动方式

【1】复制启动脚本文件

##/usr/lib/systemd/system目录自动存放启动文件的配置位置

【2】编辑启动脚本文件,重载服务配置文件——>配置完成

##此处选择注释掉也可;默认php-fpm启动时只读挂载至/usr目录##daemon-reload:重新加载服务的配置文件;如果新安装了一个服务,归属于 systemctl 管理,要使新服务的服务程序配置文件生效,需重新加载

【3】配置php命令

4、Nginx结合Php时的Nginx配置

【1】nginx配置文件修改

【2】配置php测试页面

【3】重启nginx后测试 

5、配置Php的memcache模块

【1】memcache的安装:

memcache软件下载地址: http://pecl.php.net/package/memcache

安装依赖软件:

yum install -y autoconf

yum install -y automake

不同系统的编译要用不同的编译参数,但是开源软件不可能带多个Makefile,而且又难写,于是有了configure脚本,它自动检测系统,并接受一个Makefile.in文件,根据它来生成Makefile

然而confiure脚本和Makefile.in还是很难写;于是GNU推出了autoconfautomake,用于生成configure脚本和Makefile.in文件,其中autoconf是用来生成configure的,automake是用来生成Makefile.in的

##之后make

在使用php的过程中,我们常常需要去添加一些PHP扩展库,但是重新对php进行编译是比较麻烦的,所以这时可以使用phpize对php进行添加扩展,并且phpize编译的扩展库可以随时启用或停用,比较灵活

【2】配置Php加载memcache模块

6、安装memcached服务并启用 

其实我们这里所说的memcache和memcached说的是PHP的扩展,假如我们要在PHP中使用 memcache,我们肯定是需要在服务器上安装memcached服务,也需要为PHP安装对应的扩展,这样我们才能用PHP代码控制memcache;如果安装了memcached不安装扩展,那么php无法操控memcached,但命令行使用起来没有问题;如果安装了memcache扩展但是没有安装memcached服务,那么这个扩展就无法使用 ;只有同时安装了memcached服务和memcache扩展才可以在PHP中使用memcached提高动态网站性能

memcache 是一个原生版本,完全是在PHP框架内开发的,支持OO(面向对象)和非OO两套接口并存,而memcached是建立在libmemcached的基础上的,只支持OO接口;这就意味着在安装 memcache扩展的时候不要求安装其他的东西,但是在安装memcached的时候会要求你安装 libmemcached,因为libmemcached是memcache的C客户端,它具有低内存,线程安全等优点

7、配置php和memcache在nginx中的发布文件

重启nginx后在浏览器中测试访问

压力测试:

 ab -c 10 -n 5000 http://172.25.100.1/index.php

##未配置memcache模块的发布文件;速率较快但有错误请求

ab -c 10 -n 5000 http://172.25.100.1/example.php

##配置了memcache模块的发布文件;速率较差但无失败请求

8、构建Nginx的高速缓存 

Nginx有两种缓存机制:fastcgi_cache和proxy_cache 

proxy_cache作用是缓存后端服务器的内容,可能是任何内容,包括静态的和动态的;
fastcgi_cache作用是缓存fastcgi生成的内容,很多情况是php生成的动态内容;
proxy_cache缓存减少了nginx与后端通信的次数,节省了传输时间和后端带宽;
fastcgi_cache缓存减少了nginx与php的通信次数,更减轻了php和数据库的压力 

我们都知道Nginx有很多的特性和好处,但是在Nginx上开发成了一个难题;Nginx模块需要用C开发,而且必须符合一系列复杂的规则,最重要的用C开发模块必须要熟悉Nginx的源代码,使得开发者对其望而生畏;为了开发人员方便,所以引进了一种整合了Nginx和lua的框架,即OpenResty,它帮我们实现了可以用lua的规范开发,实现各种业务,并且帮我们弄清楚各个模块的编译顺序 

OpenResty(也称为ngx_openresty)是一个全功能的Web应用服务器;它打包了标准的Nginx核心、很多常用的第三方模块以及它们的大多数依赖项

通过揉和众多设计良好的Nginx模块,OpenResty有效地把Nginx服务器转变为一个强大的Web应用服务器,基于它开发人员可以使用Lua编程语言对Nginx核心以及现有的各种Nginx C模块进行脚本编程,构建出可以处理一万以上并发请求的极端高性能的Web应用

简而言之,openresty其实就是对Nginx的又一次封装,它集成了Nginx核心和常用模块,再基于lua这个脚本语言,让开发者对Nginx的功能扩展和定制不再困难

OpenResty的安装

软件下载地址:OpenResty® - 中文官方站https://openresty.org/cn/

原码编译安装:

OpenResty的配置

配置前要确保服务器上安装了memcached服务并启用服务,并且如果安装了nginx服务,要把nginx服务关闭,因为我们要使用openresty中的nginx模块实现高速缓存

openresty中nginx的配置文件配置:

配置openresty下nginx的发布文件:

重启openresty下nginx后测试效果

ab -c 10 -n 5000 http://172.25.100.1/index.php

##速率很快且无失败请求

ab -c 10 -n 5000 http://172.25.100.1/example.php

##速率很快且无失败请求 

9、tomcat配置

Tomcat是常见的免费的web服务器

tomcat软件下载地址:Apache

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值